我嘗試打印地址的值,併產生錯誤。如何在C中打印一個變量的地址?
int main()
{
int arr[] = {10,20,30,40,50,60};
int *ip;
ip=&arr[3];
printf("%u",ip);
return 0;
}
我嘗試打印地址的值,併產生錯誤。如何在C中打印一個變量的地址?
int main()
{
int arr[] = {10,20,30,40,50,60};
int *ip;
ip=&arr[3];
printf("%u",ip);
return 0;
}
如所指出的指針的值是對象它所指向的地址。您打印使用:
printf("%p",(void*) ip);
如果你有興趣在值對象的指針指向 - 你需要取消對它的引用,然後在這種情況下%d
格式說明使用方法:
printf("%d",*ip);
@jpw:這是錯字。我猜是需要強制轉換,因爲%p期望void類型的指針。 –
@jpw:是%p格式需要一個類型爲void *的參數。看到這個http://stackoverflow.com/questions/5286451/how-to-print-variable-addresses-in-c&http://stackoverflow.com/questions/20374880/print-the-memory-location-of-一個可變 - 或指針。 – Destructor
你得到的錯誤是什麼? – lenz
另外,我不確定這與Ubuntu有什麼關係......考慮重新標記您的帖子以獲得適當的觀衆。 – lenz
@lenz stack.c:9:1:warning:格式'%d'需要'int'類型的參數,但參數2的類型爲'int *'[-Wformat =] printf(「%d」,ip) ; –