黑马程序员技术交流社区

标题: 求解答 [打印本页]

作者: ambition    时间: 2015-5-11 13:07
标题: 求解答
#include <stdio.h>
int main()
{
        char name[] = "itcast";
        char name2[] ={'y','o','u',};
        printf("%s\n",name2);
        return 0;
} 这个提的输出结果不应该是“youitcast"吗?
我的怎么只是输出”you"是因为编译器的原因吗?
作者: 飞翔的猪    时间: 2015-5-11 14:25
我不知道该怎么回答你的问题。。。 你printf 打印的name2  不是打印name和name2  ,这样说你能理解么
作者: wzboy    时间: 2015-5-11 14:53
飞翔的猪 发表于 2015-5-11 14:25
我不知道该怎么回答你的问题。。。 你printf 打印的name2  不是打印name和name2  ,这样说你能理解么 ...

他的意思是 name2 没有截止标记\0 打印时应该会打印到name的截止标记那里 应该打印到 “itcast" \0不打印

作者: wzboy    时间: 2015-5-11 14:59
应该和编译器有关,我用C-Free结果是 ”you 乱码%@¥#¥itcast“ 用Xcode 结果就是”youitcast“了
作者: ambition    时间: 2015-5-11 15:04
wzboy 发表于 2015-5-11 14:53
他的意思是 name2 没有截止标记\0 打印时应该会打印到name的截止标记那里 应该打印到 “itcast" \0不打印 ...

对呀我就是这个意思
作者: ambition    时间: 2015-5-11 15:06
wzboy 发表于 2015-5-11 14:59
应该和编译器有关,我用C-Free结果是 ”you 乱码%@¥#¥itcast“ 用Xcode 结果就是”youitcast“了 ...

果然是这样 哈哈 谢谢!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2