为什么不能以%s输出整数?

在C语言编译时,可以以字符型输出整数,以整数型输出字符
但是为什么以字符串型(%s)输出一个整数时,虽然编译器不会报错,但是运行时程序会崩溃?

如果说一个字符串在标准化输入输出时传递的是首地址,那么以整数型输出首地址应该也没问题呀?
求大佬解答

1个回答

因为 %s 输出的是字符串,而字符串有多少个字符,取决于它最后的\0结束标志。你传入整数,那么它会一直读取内存,直到遇到\0,这会导致它读取到不该读取的内存区域,这样就崩溃了。

Y_csgoto
Y_csgoto 明白了,谢谢解答
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐