![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c语言能修改已赋值的变量地址吗?有什么意义?
展开全部
估计你概念搞混淆了,c语言中所有变量的地址都是不能修改的,变量定义后,当第一次使用系统会给它分配一块内存,直到它消亡是不会改变的。
指针变量,每次改变的其实也是指针变量里面存放的值。比如 int a,b,*p;
p=&a 相当于p里面存放了a的地址,假设a所在内存单元(地址)为100,a的值为3,即p的值是a的地址(p=100),*p 是取 100这个内存单元中存放的值,所以*p就是去100这个单元中存放的值(*p=a=3)。
然后 p=&b,这个时候p里面存放了b的地址,*p 是取 p内存单元中存放的值,所以*p就是b的值(*p=b)。但a,b,p所在的位置都没有变。
指针存在的意义在于,我可以通过一个指针去访问不同内存单元,这样相当于统一了入口。
指针变量,每次改变的其实也是指针变量里面存放的值。比如 int a,b,*p;
p=&a 相当于p里面存放了a的地址,假设a所在内存单元(地址)为100,a的值为3,即p的值是a的地址(p=100),*p 是取 100这个内存单元中存放的值,所以*p就是去100这个单元中存放的值(*p=a=3)。
然后 p=&b,这个时候p里面存放了b的地址,*p 是取 p内存单元中存放的值,所以*p就是b的值(*p=b)。但a,b,p所在的位置都没有变。
指针存在的意义在于,我可以通过一个指针去访问不同内存单元,这样相当于统一了入口。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询