【 C 】关于变量、地址、指针变量等关系的一点思考

举报
李锐博恩 发表于 2021/07/15 23:01:25 2021/07/15
【摘要】 学习C语言,我们永远绕不开的就是指针,指针是一项伟大的发明,但是它给我们的理解也造成了困难。下面是我对变量、指针变量等的一些简单的思考。 变量 谈起变量,或许我们都不屑一顾,可是认真一想,发现坏了,变量到底是个啥?是一个容器?是一个地址的名字?还是? 关于变量,我们是可以把它形象地理解为一个容器,它可以存储一定的值。(事实上,变量就是用名字来代替地址而已,变量代替的地...

学习C语言,我们永远绕不开的就是指针,指针是一项伟大的发明,但是它给我们的理解也造成了困难。下面是我对变量、指针变量等的一些简单的思考。


变量

谈起变量,或许我们都不屑一顾,可是认真一想,发现坏了,变量到底是个啥?是一个容器?是一个地址的名字?还是?

关于变量,我们是可以把它形象地理解为一个容器,它可以存储一定的值。(事实上,变量就是用名字来代替地址而已,变量代替的地址对应的内存可以存储数值,这就相当于变量直接存储数值了。)

既然变量是代替地址的名字,那么变量也有一定的地址,在C语言中,我们定义一个变量,编译器会给它开辟一个地址,该地址对应的存储空间用来存储变量值(数值)。例如,静态变量的存储类型是普通内存,自动(auto)变量的存储类型是堆栈,一些频繁使用的自动变量的存储类型是机器的硬件寄存器,这是由编译器决定的。(这里说明一下,变量的存储类型是什么意思?变量的存储类型是指存储变量值的内存类型。)

当然,我们在写C语言代码时,我们并不知道我们创建的变量代替的地址具体为多少(我们也不需要知道)。

实际上,我们访问内存中的值是通过地址来访问的,也就是说,如果你记住了一个值的存储地址,以后就可以根据这个地址来取这个值。

但是,记住这些地址未免也太笨拙了,于是高级语言【c】提供了一种方法,就是通过名字来访问内存中的值,也就是用名字来代替地址,这些名字就是我们所说的变量。

注:变量与内存位置之间的关联并不是硬件所提供的,而是编译器为我们实现的。所有这些变量给我们一个方便的方法记住地址:硬件仍然通过地址访问内存位置。

总之,我们认为变量可以存储东西就好啦。

最后引用:c++ primer plus 

变量提供一个具名的,可供程序操作的存储空间。


指针

指针也就是地址。

指针变量

指针变量也是一个变量,只不过它是一个存储地址的变量。

 

 

 

 

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/82152333

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。