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