C++ 指针陷阱

           还是自我调侃下,楼主C++菜鸟一个,写的不好的大家批评指正。

           直接上代码

void cal(int *a,int *b)

{

b = a;

}

int _tmain(int argc, _TCHAR* argv[])

{

int a,b;

a = 1;

cal(&a,&b);

return 0;

}

       这个例子有问题么,呵呵,那是显然的,不然楼主没必要说了,程序是得不到你想要的结果的。那么问题出在哪儿?处在很多人都想当然的人为指针传递就一定能改变函数调用处的值。可是当你仔细分析下下面这句话你就恍然大悟了:指针传递和值传递没有本质上区别依旧是传递的值,不过这个值是指针而已。那么你在调用函数中对指针的操作与值传递对值得操作不是一个意思么?

       所以虽然你在调用函数中把b的地址指向了a,但是在上面的主函数中b实际指向地址依旧没变。so easy 不是么~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值