假设主函数中有一个变量a,然后在自定义函数中通过指针改变主函数的变量a的值,那么有一个小疑问:变量a的作用域只存在主函数,自定义函数运行时难道可以通过指针取得不在该函数作用域内的a变量的地址吗?
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
自定义函数通过指针改变主函数的变量,指针是凭空变出来的么,需要从主函数里通过&a等方式把变量a以地址引用的方式传递给自定义函数,这时候你控制的不是变量a,而是它对应的那个内存单元,变量名a只是这个内存单元的一个标记符号,而自定义函数获得的指针,是另一个标记
拉丁的传说
TA贡献1789条经验 获得超8个赞
自定义函数运行时难道可以通过指针取得不在该函数作用域内的a变量的地址吗?是的,你说的没错。不信可以把地址打出来看看:Cvoidfunc(int*p){printf("infunc:%d",p);}intmain(){inta=1;printf("inmain:%d",&a);func(&a);return0;}
添加回答
举报
0/150
提交
取消