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

语法上应该没问题,编译也通过,为什么就是无法运行呢?
2024-11-17 15:38:57
推荐回答(2个)
回答1:

%s要对应char *或char []类型的变量,而b只是char型变量。
用printf("%c", b);就可以输出b的字符。
如果printf("%s",b);实际上就是把字符'2'的asc码值当作地址去输出字符串,而这个地址是禁止访问的,所以会出现程序执行错误。

回答2:

%s需要一个char *,不是char,显然是语法有错误。
对于语法检查不严格的编译器,这个是忽略了。
对于检查严格的编译器,会检查格式化输出%格式对应的数据类型
至少会给出一个warning的。