c语言简单的问题,,进吧

来源:百度知道 编辑:UC知道 时间:2024/05/29 16:01:50
char c【】="i am happy";printf("%s",c)这样为什么能把 i am happy 输出来,不是说%s这个标志不是遇到第一个空格键就停止了么 在i的后面不是有尾符么,,为什么还能输出后面的am happy呢 这是c语言问题高手讲讲好么 谢谢谢了

%s 是遇到第一个空值停止 空格不时空值 空格相应ASCII码不为空 必须遇到'\0' 才会停止

表示输出类型的格式字符 格式字符意义
%d 以十进制形式输出带符号整数(正数不输出符号)
%o 以八进制形式输出无符号整数(不输出前缀O)
%x 以十六进制形式输出无符号整数(不输出前缀OX)
%u 以十进制形式输出无符号整数
%f 以小数形式输出单、双精度实数
%e 以指数形式输出单、双精度实数
%g 以%f%e中较短的输出宽度输出单、双精度实数
%c 输出单个字符
%s 输出字符串

c语言中,一个字符串的终止值是‘\0',而不是空格
在char c【】="i am happy";printf这句语句中,你初始化了数组c的值为“i am happy”,系统会自动在数组的有效数据后的一个字符加上\0作为终止值

你输入的字符串在内存中的时候,其实是在最后有一个\0作为字符串结尾的标志的,字符串输出是遇到\0的时候终止输出

%s 遇到 '\0'才停,而不是' '.