簡體   English   中英

在C中打印未分配值的變量

[英]Printing a variable in C that was not assigned a value

我將此代碼放入eclipse中並運行

main()
{
  int *p, *q, *r;
  int a = 10, b = 25;
  int c[4] = {6,12,18,24};

  p = c;

  printf("p = %d\n" ,p);
}

我得到的輸出是p = 2358752

這個數字應該代表什么? 它是變量的地址嗎?

如果我上面所說的是正確的,那么我對以下問題的回答是否正確?

所以可以說以下存儲在以下位置

address      variables

5000         p

5004         q

5008         r

500C         a

5010         b

5014        c[0]

5018        c[1]

501C        c[2]

5020        c[3]

線也會這樣

p = c;

是5014?

int *p,

上面的語句將p定義為指向整數的指針。 在下面的語句中, c被隱式轉換為指向數組a的第一個元素的指針。

p = c;
// equivalent to
p = &c[0];

因此, p包含數組第一個元素的地址。 另外,用於打印地址的轉換說明符為%p

printf("p = %p\n", (void *)p);
// prints the same address
printf("c = %p\n", (void *)c);

是的, pc的地址,與c[0]的地址相同。 是的,在您的第二個示例中, p等於5014。

暫無
暫無

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

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