2 qq 33465534 qq_33465534 于 2016.05.11 16:52 提问

为什么我用指针可以改变常变量的值

如图,能和我解释一下吗?为什么直接赋值不可以,而用指针却可以?图片

5个回答

ZGZ1002
ZGZ1002   2016.05.11 16:57
已采纳

肯定的啊,你定义了一个指针int *p_index; p_index就是个指针,而 *p_index便是指针p_index指向的内容,即是a。 *p_index = 30 等价于 a=30。 所以你改变了p_index指针指向的内容a

qq_33465534
qq_33465534 那为什么赋值语句不能来修改a呢?
一年多之前 回复
qq_33465534
qq_33465534 好像是,等我测试一下
一年多之前 回复
ZGZ1002
ZGZ1002 回复qq_33465534: 不是我没看标题,是我以为你懂得const怎么用呢。
一年多之前 回复
ZGZ1002
ZGZ1002 回复qq_33465534: const 修饰其前面的表示符,如果const在最前面可以往后移动一位,const在这里修改的是int,也就是说int型是不能变的,但是变量a是可以变得。建议你看看const的作用。
一年多之前 回复
qq_33465534
qq_33465534 看了标题吗?
一年多之前 回复
qq_33465534
qq_33465534 你肯定没学过c
一年多之前 回复
CSDNXIAOC
CSDNXIAOC   2016.05.11 17:02

堆和栈
栈:存储空间小,执行效率高。
堆:存储空间大,执行效率低。
栈是本着先进后出的原则。我们所定义的局部变量和形参,都存储在栈内存上。
因为栈在内存中是连续的。我们存贮的变量的变量有序的从栈中 取出,这样就
避免了内存碎片的出现。

在内存中有些不连续的内存区域由链表连起来,就形成了堆。
o(︶︿︶)o 唉 这块真乱……
指针强制改变 变量的值。
#includ......
答案就在这里:C++ 指针改变变量的值
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

ZGZ1002
ZGZ1002   2016.05.11 17:14
wll1228
wll1228   2016.05.12 07:35

要分清楚指针和指针指向的内容两个概念,指针代表地址要赋值也只能给地址,*指针=x才可以改变指向的内容。

kingoftheland
kingoftheland   2017.05.19 08:47

这不是强制转化吗。。。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!