以下程序的输出结果是( ) main( ) { char b[ ]="Hello,you

以下程序的输出结果是( )
main( )
{ char b[ ]="Hello,you";
b[5]=0;
printf("%s\n",b);
}

你一开始赋完值之后就是这样 :b[0]就是H,b[1]就是e,b[2]是l,b[3]是l,b[4]是o,b[5]是逗号,后面就不写了。b[5]=0其实就是b[5]='\0',这步之后b[5]就变成'\0'了。说到这里好像都是废话,关键是后面,在后面输出字符串的时候,c语言规定字符串末尾是以'\0'结束的,也就是说只要碰到'\0'的话C语言就认为字符串就在这里结束了,后面的它也不管了,所以输出Hello之后C语言就认为字符串结束了,就是"Hello\0",所以你看到的就是输出只有Hello就没了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-27
你确定没抄错题目吗?追问

没有

追答

char b[ ]="Hello,you"; 确定这句没错?

追问

确定没有

追答

这个定义是错误的。。。 编译器里面试过了。。

追问

vc++可以运行哦!

直接复制粘贴到vc里运行

答案是Holle
为什么?

Hello

追答

靠! 我贴的是ECLIPSE 不好意思 我做JAVA的- - !

追问

这是c语言,java哦(⊙o⊙)哦

相似回答