c語言中 %p的含義


格式控制符“%p”中的p是pointer(指針)的縮寫。指針的值是語言實現(編譯程序)相關的,但幾乎所有實現中,指針的值都是一個表示地址空間中某個存儲器單元的整數。printf函數族中對於%p一般以十六進制整數方式輸出指針的值,附加前綴0x。
示例:
int i = 1;
printf("%p",&i);
相當於
int i = 1;
printf("0x%x",&i);
對於32位的指針,輸出一般會是類似0xf0001234之類的結果。
%p存在的理由除了附加前綴輸出的便利性以外,如LS所說,指針的大小是不確定的,由實現決定。根據地址空間的大小,一般有16位、32位、64位的指針。盡管目前32位平台上的指針一般全是32位的,但舊的一些平台上可能有多種長度的指針(例如非標准的near、far、huge修飾的pointer)混用,無法用%x、%lx、%hx、%llx(對應int、long、short、long long)中的任意一種保證能輸出所有類型的指針。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM