C语言printf输出字符串变量问题

语法上应该没问题,编译也通过,为什么就是无法运行呢?

%s要对应char *或char []类型的变量,而b只是char型变量。
用printf("%c", b);就可以输出b的字符。
如果printf("%s",b);实际上就是把字符'2'的asc码值当作地址去输出字符串,而这个地址是禁止访问的,所以会出现程序执行错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-10
%s需要一个char *,不是char,显然是语法有错误。
对于语法检查不严格的编译器,这个是忽略了。
对于检查严格的编译器,会检查格式化输出%格式对应的数据类型
至少会给出一个warning的。追问

啊我明白了,谢谢!

相似回答