格式控制符「%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)中的任意一種保證能輸出所有型別的指標。
**《c語言中 %p的含義》
c語言中 p的含義
格式控制符 p 中的p是pointer 指標 的縮寫。指標的值是語言實現 編譯程式 相關的,但幾乎所有實現中,指標的值都是乙個表示位址空間中某個儲存器單元的整數。printf函式族中對於 p一般以十六進製制整數方式輸出指標的值,附加字首0x。示例 int i 1 printf p i 相當於int ...
c語言中 的含義
是乙個整體,它是用於指向結構體 c 中的class等含有子資料的指標用來取子資料。換種說法,如果我們在c語言中定義了乙個結構體,然後申明乙個指標指向這個結構體,那麼我們要用指標取出結構體中的資料,就要用到 舉個例子 struct data 定義結構體 struct data p 定義結構體指標 st...
c 語言中 T含義
1.t hello 是乙個巨集,作用是讓程式支援unicode編碼。2.windows使用兩種字符集ansi和unicode,前者使用的單位元組格式,後者使用雙位元組格式。3.簡單一點講 t hello world 表示 在ansi的環境下,它是ansi的 在unicode下,那麼它將自動解釋為雙位...