char[] s = "hi"; printf(s)
非常に簡単な質問があります。「警告:フォーマットは文字列リテラルではなく、フォーマット引数もありません」という警告を発行するのに、なぜ発行しないのですprintf("aa")
か。
char配列と文字列リテラルの違い(1つはともう1つconst char const*
はchar*
)をすでに読みましたが、printf()
署名から:
私はそれがそのタイプのどれにも適していると思います。だから私の質問は、なぜprintf("aaa")
警告を出さないのですか(リテラルが定数であるのに対し、配列はそうではないことをどういうわけかチェックしますか?)