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

本文围绕C语言中变量和指针展开。变量可形象理解为容器,是用名字代替地址,编译器会为其开辟地址存储值,存储类型由编译器决定,高级语言通过名字访问内存值。指针即地址,指针变量是存储地址的变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


变量

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

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

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

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

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

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

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

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

最后引用:c++ primer plus 

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


指针

指针也就是地址。

指针变量

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

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李锐博恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值