簡體   English   中英

如何在C中檢查指針變量的地址

[英]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.

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