[英]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);
是的, p
是c
的地址,與c[0]
的地址相同。 是的,在您的第二個示例中, p
等於5014。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.