黑马程序员技术交流社区

标题: 字符串 [打印本页]

作者: 大悟云    时间: 2014-11-5 22:04
标题: 字符串
a[10]={"name"}                                      五个字符a[10]={'n ', 'a' , 'm' , 'e' ,'\0'}                 五个字符
a[10]={'n ', 'a' , 'm' , 'e', 0 }                    五个字符
a[10]={'n ', 'a' , 'm' , 'e' }                       四个字符

以字符串形式初始化,后面默认有‘\0';
‘\0'的ASCII值是0,所以第二个跟第三个在内存中是相同的;
前三个数组的长度相等。




作者: atlas    时间: 2014-11-6 09:09
你也学到这了,我也是,一起讨论啊
作者: yuanlingqi    时间: 2014-11-6 13:01
a[10]={'n ', 'a' , 'm' , 'e' } 是四个字符
若是a[]={'n ', 'a' , 'm' , 'e' }   你觉得应该是多少个字符?
我手头没有编辑器。
作者: 枫叶路过123    时间: 2014-11-6 13:30

a[10]={"name"}   \0在内存中是有的   
作者: 大悟云    时间: 2014-11-6 19:49
atlas 发表于 2014-11-6 09:09
你也学到这了,我也是,一起讨论啊

我也在学c语言,今天看到指针了
作者: 大悟云    时间: 2014-11-6 19:50
yuanlingqi 发表于 2014-11-6 13:01
a[10]={'n ', 'a' , 'm' , 'e' } 是四个字符
若是a[]={'n ', 'a' , 'm' , 'e' }   你觉得应该是多少个字符 ...

应该也是四个吧
作者: yuanlingqi    时间: 2014-11-6 20:20
本帖最后由 yuanlingqi 于 2014-11-6 20:23 编辑

错了,答案是不一定。char a[]没有指定数组长度,所以是不定长的,长度取决于随机分配内存的值,编辑器不会自动在后面加\0结束符号。
作者: 大悟云    时间: 2014-11-7 21:05
yuanlingqi 发表于 2014-11-6 20:20
错了,答案是不一定。char a[]没有指定数组长度,所以是不定长的,长度取决于随机分配内存的值,编辑器不会 ...

我的电脑没有装编译器,没有试过
作者: yuanlingqi    时间: 2014-11-7 23:19
大悟云 发表于 2014-11-7 21:05
我的电脑没有装编译器,没有试过

复制粘贴的东西,不是你自己的。
作者: 肖郡郁    时间: 2014-11-8 10:46
yuanlingqi 发表于 2014-11-6 13:01
a[10]={'n ', 'a' , 'm' , 'e' } 是四个字符
若是a[]={'n ', 'a' , 'm' , 'e' }   你觉得应该是多少个字符 ...

这两个都是字符数组,区别在于一个说明了数组长度,一个没有说明数组长度,没有说明则会默认是你初始化的字符个数长度。这两个的字符都是4.




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