为了账号安全,请及时绑定邮箱和手机立即绑定

c语言 指针在自定义函数中改变主函数的变量的值时

c语言 指针在自定义函数中改变主函数的变量的值时

慕姐4208626 2019-04-16 20:27:21
假设主函数中有一个变量a,然后在自定义函数中通过指针改变主函数的变量a的值,那么有一个小疑问:变量a的作用域只存在主函数,自定义函数运行时难道可以通过指针取得不在该函数作用域内的a变量的地址吗?
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

自定义函数通过指针改变主函数的变量,指针是凭空变出来的么,需要从主函数里通过&a等方式把变量a以地址引用的方式传递给自定义函数,这时候你控制的不是变量a,而是它对应的那个内存单元,变量名a只是这个内存单元的一个标记符号,而自定义函数获得的指针,是另一个标记
                            
查看完整回答
反对 回复 2019-04-16
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

自定义函数运行时难道可以通过指针取得不在该函数作用域内的a变量的地址吗?
是的,你说的没错。不信可以把地址打出来看看:
Cvoidfunc(int*p){
printf("infunc:%d",p);
}
intmain(){
inta=1;
printf("inmain:%d",&a);
func(&a);
return0;
}
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 756 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信