标题:当我们在声明变量时,C语言在做什么?
只看楼主
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
结帖率:100%
已结贴  问题点数:20 回复次数:11 
当我们在声明变量时,C语言在做什么?
C语言开始学指针了,虽然小程序写了几十个了,但今天突然发现自己连变量的一些问题都搞不清楚。所以发帖一问。

变量:程序中准备使用的一段数据
声明变量:创建变量

假设我声明一个整型变量:
    int a;
C语言在读到这行语句时会做些什么呢?
1.是将内存中未使用的4个字节贴上标签说“大家好我的名字是a,我名花有主大家不要动”吗?
2.每次运行程序C语言是怎样确定a的地址的?
3.如果计算机的剩余内存只有4M,是不是最多只能声明4 * 1024 *1024个变量呢?多声明一个会发生什么情况?

请大神用通俗易懂的语言解释,多谢!
搜索更多相关主题的帖子: 运行程序 计算机 做什么 C语言 标签 
2014-09-11 15:13
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
声明局部变量时  计算机所做的事情就是根据变量类型调整栈指针的大小

DO IT YOURSELF !
2014-09-11 15:40
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
windows会自己管理内存的  估计真的有物理内存耗尽的那一刻  系统会直接当掉

DO IT YOURSELF !
2014-09-11 15:44
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
得分:0 
回复 2 楼 wp231957
栈指针太高深了老大,完全看不懂啊
2014-09-11 15:52
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 4 楼 muyoucumian
那没啥办法  局部变量就保存在栈那里  通过栈指针来操作变量(因为计算机内部只认识栈 不认识变量,所以你为一个整型变量声明为i或者q 或者k 啥的  对于计算机来说 是一样的 都是一个栈指针)

DO IT YOURSELF !
2014-09-11 15:56
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:5 
得学点汇编语言才能知道细节

对于初学者 学语法更重要 这种实现细节 需要你有基础才能明白
2014-09-11 18:21
龙牙
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大汉
等 级:贵宾
威 望:17
帖 子:769
专家分:6207
注 册:2013-3-18
得分:5 
我觉得楼主去看看微机原理,我正在学习。

只要心是晴朗的,人生就没有雨天。
2014-09-11 19:28
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
得分:0 
回复 7 楼 龙牙
谢谢!
2014-09-11 19:49
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
得分:0 
回复 6 楼 zklhp
我真是烦躁,今天问自己一下:变量是什么?百度之后得到答案后,声明变量是在干什么?这个问题就卡壳了。

为什么C语言的书上就不把这些问题讲清楚呢,知其然而不知其所以然,这样真的好吗?
2014-09-11 19:54
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
得分:5 
简单说说:
搞笑版:一个人家有各种各样的值钱的东西,床,沙发,饭桌,电视 还有好多的小麦 价格有多有少
他需要购买东西的时候直接计算用哪些东西去换,这是汇编。
他需要购买东西的时候直接拿出账本写一张发票,这时C语言。不用知道这发票怎么实现,怎么兑换,只要知道能买东西就好
2014-09-11 19:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-435952-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015760 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved