首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C语言里*和&连用是什么意思啊解决办法

2012-03-25 
C语言里*和&连用是什么意思啊我看到一个关于链栈的数据结构程序void push(LinkStack *&S,ElemType x)S是栈

C语言里*和&连用是什么意思啊
我看到一个关于链栈的数据结构程序
void push(LinkStack *&S,ElemType x)

S是栈顶指针。*&S在这里是什么意思啊。还有就是如果我在主程序里定义了一个栈s,要调用push函数应该怎么调啊,
是push(s,x)吗?

[解决办法]
LinkStack *&S 表示这是指向一个栈指针 的引用
例如,定义了这样一个函数
void push(LinkStack *&S,ElemType x)

于是,你可以这样用它
LinkStack * ls = new LinkStack();
ElemType elem;
push(&ls,elem);

这时候,就把一个元素推进栈了


[解决办法]
普通的按地址传参,你可以在函数里改变这个指针指的值,你是在函数里面又新建了一个指针,跟传进去的指针指向同一个地址。
而指针的引用,你可以把作为实参的这个指针指向其他地址
[解决办法]

探讨
我看到一个关于链栈的数据结构程序
void push(LinkStack *&S,ElemType x)

S是栈顶指针。*&S在这里是什么意思啊。还有就是如果我在主程序里定义了一个栈s,要调用push函数应该怎么调啊,
是push(s,x)吗?

热点排行