当我声明一个变量时,例如:
int x = 6;
x
到底是什么?内存中的地址通常是十六进制的..
另外,当我调用 X 时
x = 2;
编译器如何知道 x
在哪里? x
不是地址。
这是我的第一个问题。
第二个:
假设我有一个对象:
人 p;
p
有 2 个数据成员:
int type1, int type2;
p
到底是什么,为什么要先到p
,然后是变量?
p.type1, p->type1.
最佳答案
在int x = 6
的情况下,x
只是帮助您编写代码和编译器编译它的名称。它基本上是内存中某个位置的别名,以便以后通过 x = 2
访问它更容易 - 这告诉您和编译器您想要写入值 2
在同一个地方。
和以前一样,但它占用了更多的空间(准确地说是sizeof(Person)
)。 p->type1
仅在 p
是指向 Person
的指针时有效(或者如果您重载了 ->
运算符,但事实并非如此),p.type1
是用于对象的语法,用于指定要访问对象的哪一部分。
关于c++ - 在 C++/C 中声明变量时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12860822/