C 指针变量 也是 传值 调用

来源:互联网 发布:怎么激活电脑windows 编辑:程序博客网 时间:2024/04/30 15:08

函数 F  并不能 改变 pi 的值。   这是一个典型的错误,经常在笔试中出现。

 

C 在 调用 函数变量时 即使是指针变量 也是传值的 (只有传引用是直接传地址)。
  
当你调用函数传递(int * p)时,很显然传递的是指针的值,嗯,而这个值保存在F的栈帧中
  
接着,你修改了这个值,你修改的是栈帧中的值,而原函数中的指针的值,并没有改变,因为你传递的是 指针的值,函数中修改的是指针的值。
  
应该使用指针的指针。

或者 可以直接传引用 F(&p)。

 

原创粉丝点击