簡體   English   中英

scanf 如何存儲價值?

[英]How does scanf store value?

我是 C 的新手。鑒於以下代碼,

int main(void)
{
 int a;
 scanf("%d",&a);
 scanf("\n"); // consume trailing newline
}

據我了解,第一個聲明語句告訴編譯器為整數類型變量分配內存,其標識符“a”初始化為 0(如“a==0”)。 Scanf 需要一個有效的內存地址來存儲用戶輸入(比如 5),因此 &a 是“a”的內存地址,用戶輸入存儲為“a==5”。 是這種情況還是'a'被存儲為內存地址的變量名並且地址的內容只是5?

是這種情況還是“a”被存儲為內存地址的變量名

&a是指向為a保留的內存的指針。 不涉及名稱“a”。

... 初始化為 0

默認情況下不初始化自動對象。 在沒有staticextern_Thread_local的函數內聲明的任何對象都具有自動存儲持續時間。

未初始化對象的值是不確定的,這意味着它沒有固定值; 每次使用它時,它可能表現得好像它具有不同的值。 (如果顯式初始化自動對象的任何部分,例如數組的一個元素或結構的一個成員,整個對象將被初始化,對於數字類型默認為零,對於指針類型默認為空指針。)

暫無
暫無

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

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