顺序堆栈中一个指针问题
初始化函数定义为int InitStack( SqStack &S ),请问大家括号里这部分应该怎么理解呢?
是不是S是一个堆栈结构体,SqStack &S相当于指向这个结构体的指针呢?
这样写比int InitStack( SqStack *S )好在哪里呢? 本帖最后由 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;
}
就这样,希望能有所帮助。 感谢分享2
页:
[1]