簡體   English   中英

C/C++ 中的變量數據存儲在哪里?

[英]Where is variable data stored in C/C++?

雖然我知道 memory 布局應該是:

文本段:可執行指令(我猜是二進制機器碼)

初始化數據段:如果 static int a = 10,則初始化的全局和 static 變量; a 存儲在這里,我假設值 10 也存儲在這里?

未初始化的數據段:存儲未初始化的變量。 static int a; 'a' 將存儲在這里。

堆棧:本地、臨時變量、遞歸 function 調用、返回地址。

:動態 memory 通過 malloc 或 realloc 分配給變量。

char *s = “hello world”

指針變量和字符串“hello world”將存儲在哪里?

C/C++ 中的變量數據存儲在哪里?

取決於實施。 以下是一般的一些可能性:

  • 在 memory
  • 在 CPU 寄存器中
  • 無處

雖然我知道 memory 布局應該是......

您所描述的可能適用於某些系統/ CPU 架構。 它不是 C++ 語言中指定的內容。


 char *s = “hello world”

指針變量......將存儲在哪里?

鑒於該變量具有 static 存儲,並且已初始化,如果您的描述正確,則適用:

已初始化的數據段:已初始化的全局和 static 變量


將......字符串“hello world”存儲在哪里?

字符串文字有 static 存儲並且它被初始化。 雖然它不是一個變量。 沒有一個描述很合適。


此外,該代碼段格式錯誤(自 C++11 起),因為字符串文字不能轉換為指向非 const char 的指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM