我有下面的代碼:
static char *name[] = {
"January",
"February",
"March",
};
printf("%s", name[0]);
當我通過 printf 時name[0],它會列印January. 但是它不應該列印address一月的,因為上面的陣列存盤一pointer到一月嗎?
uj5u.com熱心網友回復:
轉換說明符%s將相應的引數解釋為指向輸出的字串的第一個字符的指標,直到'\0'遇到終止零字符。
如果你想輸出指標本身,那么你應該寫
printf( "%p", ( void * )name[0] );
請注意本宣告中的內容
static char *name[] = {
"January",
"February",
"March",
};
用作初始值設定項的字串字面量被隱式轉換為指向其第一個字符的指標,并且這些指標存盤在陣列中name。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/322565.html
