[英]How to check address of pointer variable in C
我試圖打印指針變量的地址而不是它所指向的地址,有人可以協助我實現嗎? 以下是我正在嘗試但它顯示警告,我無法解決。 謝謝!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int* y;
printf("%p\n",y);
printf("%x\n",&y);
y = (int*)malloc(sizeof(int));
printf("%p\n",y);
printf("%x\n",&y);
return 0;
}
編制警告:
Warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘int **’
Output:
0xb773fff4
bfa3594c
0x8361008
bfa3594c
你的第二個printf()
應采用"%p\\n"
格式,嚴格來說是一個強制轉換:
printf("%p\n", (void *)&y);
演員實際上改變任何東西的機器數量相當有限。
代碼似乎在Visual Studio 2012上編譯時沒有警告或錯誤。
#include <stdio.h>
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int* y = 0;
printf("%p\n",y);
printf("%x",&y);
y = (int*)malloc(sizeof(int));
printf("%p\n", y);
printf("%x", &y);
return 0;
}
唯一的建議是在聲明時初始化y。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.