a13766971255 发表于 2021-1-16 13:51:53

关于字符的


这个不应该是char name吗?

a13766971255 发表于 2021-1-16 13:52:23

是题目上的char

jackz007 发表于 2021-1-16 13:55:32

      这是字符数组,是有 5 个元素的字符数组,如果这样定义:
      char name = "fishC" ;
      那么,name 是一个字符串,占用的内存就是 6 个字符了。

a13766971255 发表于 2021-1-16 13:57:23

jackz007 发表于 2021-1-16 13:55
这是字符数组,是有 5 个元素的字符数组,如果这样定义:

      那么,name 是一个字符串,占 ...

不是在后面应该有个\0吗?

jackz007 发表于 2021-1-16 14:00:14

a13766971255 发表于 2021-1-16 13:57
不是在后面应该有个\0吗?

      为什么说应该,理由是什么?

vaety 发表于 2021-1-16 14:03:12

题目中数组的元素分别单个引用,是字符数组,在系统中只占5个位置,但系统不会在最后放'\0'。
若改为char name={"fishc"},变为“字符串数组”,系统会在末尾填‘\0’,所以数组长度为6

a13766971255 发表于 2021-1-16 14:04:06

jackz007 发表于 2021-1-16 14:00
为什么说应该,理由是什么?

哦哦,字符元组不用加\0,字符串要加\0对不?

a13766971255 发表于 2021-1-16 14:05:32

vaety 发表于 2021-1-16 14:03
题目中数组的元素分别单个引用,是字符数组,在系统中只占5个位置,但系统不会在最后放'\0'。
若改为cha ...

字符数组不用加\0,字符串要加\0对不?

jackz007 发表于 2021-1-16 14:07:31

a13766971255 发表于 2021-1-16 14:04
哦哦,字符元组不用加\0,字符串要加\0对不?

       是的,只有定义字符串才会有这个附加的操作。

心驰神往 发表于 2021-1-16 14:07:40

字符串和字符数组的区别在于,字符串一般作为整体来引用

心驰神往 发表于 2021-1-16 14:10:30

字符数组的初始化可以通过字符串常量来赋值:
char a[]= {"Good!"}或者char a[]= "Good!";
这与字符数组的定义方式有区别:
char b[]= {'G','o','o','d','!'};
数组b的长度是5,而a的长度是6.因为数组a多一个系统自动加上的字符串结束标志'\0'。
你这是字符数组,所以不用6
页: [1]
查看完整版本: 关于字符的