读书人

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

发布时间: 2012-03-25 20:55:17 作者: rapoo

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)吗?

读书人网 >C++

热点推荐