C中常量的内存地址

hoo

我正在学习C语言中的指针,但有几个问题。这是一段代码,仅作为示例。

int var = 300;
char s[] = "Clang";
char *p  = "Wonder";

我知道所有变量在内存中都有其地址。变量喜欢varsp有自己的地址在内存中。

但是我想知道常量是否也有内存地址。

难道300"Clang""Wonder"自己有记忆的地址?

安蒂·哈帕拉(Antti Haapala)

C中只有对象和函数具有地址。命名变量是对象。字符串文字"Wonder"本身就是一个对象,由7个字符(即char[7])组成的数组(即6个可见字符和终止的空字符),因此可能具有地址。"Clang"此处的文字是一个临界情况,严格来说,它没有地址,因为它不是对象,而只是特殊的初始化语法。

C模型与Python编程语言完全不同,其中

a = 300

a是没有地址的名称,而是有地址300的对象。

5月是因为而C表示,对象或功能有一个地址,许多编译器优化代码,创建不遵循严格C抽象机可执行; 因此,仅当您观察对象时,它才可能具有地址。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章