c++ - 在 C++/C 中声明变量时

标签 c++

当我声明一个变量时,例如:

 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/

相关文章:

c++ - GetShortPathNameW 返回文件扩展名。我希望它忽略 .exe

c++ - 来自一个 Win32 控制台应用程序的多个控制台窗口

c++ - 如何创建在封闭类之外定义的嵌套类的实例?

c++ - 有函数模板模板参数这种东西吗?

c++ - 在 C++ 中为 3D 数组分配连续内存

c++ - 在 C++ 中使用类时出错(对 Class_name 的调用不匹配)

c++ - 专门化模板类中的模板结构

c++ - 从 C++ 调用 RPG 程序

c++ - 重载 >> 运算符未在输入上设置属性

c++ - 当它们大小相同时,将 vector<int> 转换为 vector<long> ?