char *p = "47340";
printf("%s\n", *p); // 錯誤:%s 期望 char*,傳入 char (解引用后的字符)
*p 解引用得到首字符 '4' (類型 char,整數提升為 int)。printf("%s", ...) 期望 char* 指向以 \0 結尾的字符串。52 (ASCII '4') 當地址訪問內存 → 段錯誤/亂碼。
printf("%s\n", p); // 輸出整串 "47340"
printf("%c\n", *p); // 輸出首字符 '4'
printf("%c\n", p[0]); // 同義
字符串在 C 中**以首字符地址 (指針) 代表整個字符串**。%s 接收地址,%c 接收字符值。