黑马程序员技术交流社区

标题: 什么情况?结果不应该是 okit 吗?? [打印本页]

作者: shane_west    时间: 2015-4-13 00:02
标题: 什么情况?结果不应该是 okit 吗??
为什么输出结果是 ok???是因为6.2Xcode的原因吗?
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char name[] = "it\0cast";
  5.    
  6.     char name2[] = {'o', 'k'};
  7.    
  8.     printf("%s\n", name2);
  9.    
  10.     return 0;
  11. }
复制代码


作者: 袁胜平    时间: 2015-4-13 00:28
楼主,%s代表输入字符串。结果是ok,没错的
作者: 梦想中前行    时间: 2015-4-13 10:14
以前有人问过这个问题,应该是内存的问题。你翻翻以前的帖子,有解释的。答案是okit
作者: 无声风铃    时间: 2015-4-13 10:50
原因是:name2的这种写法,如果name2[ ] = {'O','K'};这种方式在字符串的最后不回添加'\0',所以不结束,%S输出时,会一直向后找得。可以查看sizeof所占的字节为2
作者: 寒殇    时间: 2015-4-13 10:57
字符串ok没错啊
作者: shane_west    时间: 2015-4-13 22:43
梦想中前行 发表于 2015-4-13 10:14
以前有人问过这个问题,应该是内存的问题。你翻翻以前的帖子,有解释的。答案是okit ...

我重新 看一遍视屏 输出应该是 okit没错的啊 ~~:L
作者: 梦想中前行    时间: 2015-4-14 19:16
是okit,但是以前有人跟你一样的情况,有人给了回答。
作者: 四头    时间: 2015-4-14 20:02
没有理由呀!应该就是okit呀!'\0'没有这个字符结束语,程序会按照从起始点o一直找到'\0'结束。
作者: LuciferTJD    时间: 2015-4-14 21:57
楼主你这个问题我之前也问过,你可以看看之前的帖子
http://bbs.itheima.com/thread-183770-1-1.html




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