我正在学习C语言中的指针,但有几个问题。这是一段代码,仅作为示例。
int var = 300;
char s[] = "Clang";
char *p = "Wonder";
我知道所有变量在内存中都有其地址。变量喜欢var
和s
并p
有自己的地址在内存中。
但是我想知道常量是否也有内存地址。
难道300
,"Clang"
,"Wonder"
自己有记忆的地址?
C中只有对象和函数具有地址。命名变量是对象。字符串文字"Wonder"
本身就是一个对象,由7个字符(即char[7]
)组成的数组(即6个可见字符和终止的空字符),因此可能具有地址。"Clang"
此处的文字是一个临界情况,严格来说,它没有地址,因为它不是对象,而只是特殊的初始化语法。
C模型与Python编程语言完全不同,其中
a = 300
a
是没有地址的名称,而是有地址300
的对象。
在5月是因为而C表示,对象或功能有一个地址,许多编译器优化代码,创建不遵循严格C抽象机可执行; 因此,仅当您观察对象时,它才可能具有地址。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句