可能重复:
警告:格式不是字符串文字,也没有格式参数
我有一个非常简单的问题:为什么当我char[] s = "hi"; printf(s)
发出警告时:“警告:格式不是字符串文字并且没有格式参数”,同时printf("aa")
没有。
我已经阅读了 char 数组和字符串文字(一个 isconst char const*
和另一个 is char*
)之间的区别,但来自printf()
签名:
我看到它适用于任何类型。所以我的问题是为什么printf("aaa")
不发出任何警告(它是否以某种方式检查文字是否为 const,同时数组不是)?