【 C 】关于变量、地址、指针变量等关系的一点思考
学习C语言,我们永远绕不开的就是指针,指针是一项伟大的发明,但是它给我们的理解也造成了困难。下面是我对变量、指针变量等的一些简单的思考。
变量
谈起变量,或许我们都不屑一顾,可是认真一想,发现坏了,变量到底是个啥?是一个容器?是一个地址的名字?还是?
关于变量,我们是可以把它形象地理解为一个容器,它可以存储一定的值。(事实上,变量就是用名字来代替地址而已,变量代替的地址对应的内存可以存储数值,这就相当于变量直接存储数值了。)
既然变量是代替地址的名字,那么变量也有一定的地址,在C语言中,我们定义一个变量,编译器会给它开辟一个地址,该地址对应的存储空间用来存储变量值(数值)。例如,静态变量的存储类型是普通内存,自动(auto)变量的存储类型是堆栈,一些频繁使用的自动变量的存储类型是机器的硬件寄存器,这是由编译器决定的。(这里说明一下,变量的存储类型是什么意思?变量的存储类型是指存储变量值的内存类型。)
当然,我们在写C语言代码时,我们并不知道我们创建的变量代替的地址具体为多少(我们也不需要知道)。
实际上,我们访问内存中的值是通过地址来访问的,也就是说,如果你记住了一个值的存储地址,以后就可以根据这个地址来取这个值。
但是,记住这些地址未免也太笨拙了,于是高级语言【c】提供了一种方法,就是通过名字来访问内存中的值,也就是用名字来代替地址,这些名字就是我们所说的变量。
注:变量与内存位置之间的关联并不是硬件所提供的,而是编译器为我们实现的。所有这些变量给我们一个方便的方法记住地址:硬件仍然通过地址访问内存位置。
总之,我们认为变量可以存储东西就好啦。
最后引用:c++ primer plus
变量提供一个具名的,可供程序操作的存储空间。
指针
指针也就是地址。
指针变量
指针变量也是一个变量,只不过它是一个存储地址的变量。
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/82152333
- 点赞
- 收藏
- 关注作者
评论(0)