提问者:小点点

在C/C++中变量数据存储在哪里?


虽然我知道内存布局应该是:

文本段:可执行指令(我猜的是二进制的机器代码)

初始化数据段:初始化的全局和静态变量,如果静态int a=10; a存储在这里,我假设值10也存储在这里?

未初始化的数据段:存储未初始化的变量。 静态int A; “a”将存储在这里。

堆栈:局部,临时变量,递归函数调用,返回地址。

堆:通过malloc或realloc分配给变量的动态内存。

char *s = “hello world”

指针变量和字符串“Hello World”将存储在哪里?


共1个答案

匿名用户

在C/C++中变量数据存储在哪里?

取决于执行情况。 这里大致有一些可能性:

  • 在内存中
  • 在CPU寄存器中
  • 无处

我知道内存布局应该是。。。

您所描述的情况可能对某些系统/CPU体系结构是正确的。 它不是C++语言中指定的东西。

char *s = “hello world”

指针变量。。。将存储在哪里?

假设变量具有静态存储,并且它是初始化的,如果您的描述是正确的,则适用于:

初始化数据段:初始化的全局和静态变量

字符串“Hello World”将存储在哪里?

假设字符串文字具有静态存储并且它是初始化的,同上适用。

此外,代码段的格式不正确(自C++11以来),因为字符串文本不能转换为指向非常量字符的指针。

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c|c++|中|变量|数据|存储)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?