jenny1000000 发表于 2016-3-26 22:10:18

顺序堆栈中一个指针问题

初始化函数定义为int InitStack( SqStack &S ),
请问大家括号里这部分应该怎么理解呢?
是不是S是一个堆栈结构体,SqStack &S相当于指向这个结构体的指针呢?
这样写比int InitStack( SqStack *S )好在哪里呢?

rowang 发表于 2016-5-2 19:43:57

本帖最后由 rowang 于 2016-5-4 09:23 编辑

恩...前一个是C++中的语法吧,称之为引用,而后一种才是指针啦。

至于区别嘛,简单地说,引用相当于别名,就是说变量还是传入的变量,只是另外起了个名字而已,而指针相当与是个地址,可以通过这个地址找到这个变量。

引用和原变量类型相同,而指针就是原变量的指针类型啦。

用法上:
int InitStack(SqStack &S){
    // 比如在这儿试图访问S中的成员data,这样写:
    S.data = 890;
}

int InitStack(SqStack *S){
    // 而在这儿S是指针,要访问data的话,这样写:
    S->data = 890;
}

就这样,希望能有所帮助。

zhouxcpython 发表于 2016-6-3 15:47:21

感谢分享2
页: [1]
查看完整版本: 顺序堆栈中一个指针问题