搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 变量内存问题
标题:
变量内存问题
只看楼主
wolf_55555
等 级:
论坛游民
威 望:
1
帖 子:10
专家分:33
注 册:2019-6-14
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:5
变量内存问题
菜鸟求教
例如int型,分配内存32位,这32位内存只储存变量值吗?
变量的名字会存在哪里?
搜索更多相关主题的帖子:
变量
内存
分配
名字
存在
2019-08-12 10:57
wufuzhang
来 自:广州
等 级:
贵宾
威 望:
21
帖 子:206
专家分:1346
注 册:2017-8-9
第
2
楼
得分:5
代码要经过预处理,编译,链接生成机器可以执行的指令(这个过程实际上可能会更复杂):
在这过程中,所有的变量都被替换成他们所对应的内存地址,
运行程序时,在内存中的程序代码区(存放代码的地方),
直接操作变量的内存地址,根本不需要变量名。
变量名只是给程序员看的。
不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-08-12 11:21
zbjzbj
来 自:郑州
等 级:
贵宾
威 望:
52
帖 子:620
专家分:3020
注 册:2011-4-22
第
3
楼
得分:5
完全编译以后,变量名是不保留的,所有的变量名都编译成变量1,变量2,变量3,。。。对于每个变量,计算机会百分之百找到他的对应内存地址。
计算机比人记性好,不需要用一些特定意义的符号来记忆变量,他不觉得枯燥无味,艰涩难懂。
计算机比人笨的是,你必须告诉他这个变量是整形、实型等数据类型,他不会自己识别。
比如他不知道这个变量代表的是人,不能撕两半,如果你不告诉他是整形数据,他就会装傻。
你一旦指定这个变量是整形,那他就会在指定变量地址的以后四个字节中寻找这个数值。这就是计算机编程必须考虑字节的原因之一。
变量名存在哪?符号表里或者叫其他表吧,记不清楚了。
如果愿意深究,用十六进制编辑器,打开exe文件,看一下exe文件结构,数据存储方式等等会弄清楚的。
至于本人,清楚过,现在又不清楚了,所以只能抛个砖头。
2019-08-12 18:17
hoodlum1980
来 自:浙江大学
等 级:
论坛游民
威 望:
2
帖 子:289
专家分:23
注 册:2008-2-24
第
4
楼
得分:5
这个要根据你的变量的声明进行区分。
全局变量和函数内声明的 static 变量:放在同一个可读可写的 segment。
函数内声明的临时变量:放在当前线程的栈上。访问时形如: [esp / ebp + xxx] 的形式。
因此,int 变量的名字在编译后是不存在的。只能说他的存储位置/地址。
my tech blog: /hoodlum1980
2019-08-15 15:42
你们都要疼我哦
来 自:火星
等 级:
贵宾
威 望:
49
帖 子:1296
专家分:2746
注 册:2008-7-13
第
5
楼
得分:5
以前清楚过 现在全不清楚了
小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2019-08-16 20:16
wolf_55555
等 级:
论坛游民
威 望:
1
帖 子:10
专家分:33
注 册:2019-6-14
第
6
楼
得分:0
谢谢大家的解答,随着学习的深入,也会了解的越来越清楚!
2019-09-21 10:08
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-496341-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017868 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved