4.4 为什么调用的指针没有变化

问题:

我有个函数,

它应该接受并初始化一个指针void f(int *ip) { static int dummy = 5; ip = &dummy;}

但是当我如下调用时: int *ip; f(ip);

调用者的指针却没有任何变化。 

你确定函数初始化的是你希望它初始化的东西吗?

请记住在C 中, 参数是通 过值传递的。

被调函数仅仅修改了传入的指针副本。

你需要传入指针的地址(函 数变成接受指针的指针), 或者让函数返回指针。

参见问题4.5 和4.7。

永不止步步 发表于01-14 10:01 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号