1 以內存地址的格式輸出
printf()的type是%p的時候,表示以十六進制的方式顯示指定的變量,特別是用在顯示內存地址的時候。
int a = 1;
printf("%p", &a);
以上代碼的作用是顯示變量a的內存地址,其輸出如圖1所示。
圖1 a的內存地址
也可以用%p來表示變量的值,如
printf("%p", a);
此時的輸出就是十六進制的格式輸出變量a的值,如圖2所示。
圖2 a的值
2 以字符串的格式輸出
printf()的type是%s或%S的時候,表示以字符串的方式顯示指定的變量。
printf("%s", "12345abc");
此時的輸出爲“12345abc”。%s與%S的區別在於%s用於輸出窄字符串,而%S用於輸出寬字符串。
printf("%S", L"12345abc");
此時的輸出爲“12345abc”。而以下代碼則
printf("%s", L"12345abc");
printf("%S", "12345abc");
則會導致輸出混亂。