B和C选项的问题出在哪?用char的二维就可以字符串赋值,,一维不行吗

img

你可以理解为二维数组是几个连在一起的一维数组。
比如char[4][5]就是4个连续存放的char[5]数组
既然是要定义字符串而不是字符数组(后者末尾可以没有\0)就要保证字符串的数量小于数组长度-1

  • A选项:利用字符指针定义一个常量字符串
  • B选项:是一个正确的字符数组,但不是字符串
  • C选项:一行只能放5个元素,4个字符,而ABCDEF有6个字符,超过一行的内容,无法正确赋值
  • D选项:需要先开辟指针变量s指向的空间,再进行字符串的存放

如果对你有帮助,还请点个采纳,万分感谢!

B选项:数组长度只有5个,最后一个必须存储 '\0',所以初始化的时候只能用4个值
C选项:同理,二位数组先以行存储,所以长度只能是5-1=4个