c语言的赋值问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 17:53:44
main()
{
char b[]="Hello,you";
b[5]=0;
printf("%s\n",b)
}
书上答案是Hello
能帮我分析一下吗?

b[5]=0,即b[5]='\0',所以b[5]成了字符串结束标志,又因为b是以字符串形式输出的,所以在输出了b[0]~b[4]之后遇到了结束标志'\0',从而结束输出。

******************************

程序有一个语法错误,printf语句后面缺少分号。

书上的答案正确,本来输出的时候数组b的值是“Hello\0you\0”,过程如下:

小知识①第一次赋值的时候C语言要自动添加结束符号\0

小知识②在b[5]=0的时候把逗号弄成\0了,要明白'\0'实际上和0是等效的

小知识②最后打印输出的而时候,程序遇到第一个\0就会结束输出,不再打印后面的内容