C語言%p意思

在C語言中,%p是printf家族(包括printf、fprintf、sprintf、snprintf等)中的一個格式字元串,用來輸出指針變量的值。當你使用%p作為格式字元串時,printf家族函式會將指針變量的值以十六進制形式(通常帶有前綴0x)輸出,並且會自動對齊,使得輸出結果看起來像是一個地址。

例如,假設你有以下代碼:

int *ptr = malloc(10);
printf("ptr = %p\n", ptr);

輸出可能會像這樣:

ptr = 0x7ffee924b010

這裡,0x7ffee924b010ptr指針變量的值,它代表了一塊內存的地址。

注意,%p只適用於輸出指針變量,如果你嘗試將一個非指針變量以%p格式輸出,將會產生未定義行為。此外,%p輸出的地址格式可能會因為平台和編譯器而有所不同,但通常都是十六進制表示。