搜索

C语言,为什么常量不能取地址?比如&508?

发布网友 发布时间:2024-10-24 14:58

我来回答

2个回答

热心网友 时间:2024-10-29 17:03

变量可以取地址,因为编译器会在内存中分配一个空间来存储对应的数值。
常量,尤其是数值型数据,它会被直接放到汇编指令里面,比如一个赋值语句
c=508;
编译的结果,很可能就是MOV R1, #508这样的一个汇编语句。
那就谈不上地址了。
字符串型常量,比如“HELLO”,它就会是放在某个内存空间中,待程序去读取的。
这个问题,可以通过反汇编来查看。高级语言的行为,最终是要转换成机器语言来得到执行的。

热心网友 时间:2024-10-29 17:03

立即数常量没有地址 它是直接包含在指令中 而不是在内存中 只有存在数据段内存中的变量才能取地址
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top