鱼C论坛

 找回密码
 立即注册
查看: 4019|回复: 2

[已解决]顺序堆栈中一个指针问题

[复制链接]
发表于 2016-3-26 22:10:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
初始化函数定义为int InitStack( SqStack &S ),
请问大家括号里这部分应该怎么理解呢?
是不是S是一个堆栈结构体,SqStack &S相当于指向这个结构体的指针呢?
这样写比int InitStack( SqStack *S )好在哪里呢?
最佳答案
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;
}

就这样,希望能有所帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}

就这样,希望能有所帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-3 15:47:21 | 显示全部楼层
感谢分享2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 02:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表