f2(int*n)函数本来参数是整数指针类型的,而n是整型的变量,用了&之后,n就能作为f2的参数了,然后n的值就能改变为3。可是这有什么用呢
我在主函数中定义了一个SElemType类型的变量e,定义了一个SqStack的 S这个函数在主函数上方,当我调用的时候Pop(S,e),发现如果把pop函数声明里的&去掉,结果就不对,为什么啊,我会加悬赏
Status Pop(SqStack &S,SElemType &e)这样是将e定义为引用类型。假设在主函数中有定义SElemType e;当调用函数Pop(S,e);时可改变实参e的值,因为引用类型的参数传递是传址,改变形参的值就是改变的实参的值,就像例子中对函数f3(n);的调用。如果把Pop函数声明里的&去掉,则调用函数Pop(S,e);时是传值,改变形参的值就不能改变实参的值了,就像例子中对函数f1(n);的调用。
追问嗯谢谢
追答不用谢。