一个c语言二维数组初始化的问题

img


如图这个二维数组只有五个元素,是不是全都赋给第一行呢,然后下面的循环只有一个方括号不是代表行地址吗,那其他行不都是0吗,自学c语言概念有点混淆,希望解答一下谢谢

  • 这段代码中,char a[5][10] 是一个二维字符数组,它包含 5 行 10 列,即 5 个字符串,每个字符串最多包含 9 个字符(最后一个字符为字符串的结束符 '\0')。因此,该数组在定义时就已经为每个元素分配了内存空间,不是所有的元素都被赋值为 0。而且只有前 5 个元素被初始化了,它们分别为 "china", "beijing", "you", "tiananmen", "welcome"。其他元素没有被初始化,它们的值是不确定的。

  • 循环中,i 控制外层循环的行,j 控制内层循环的列。循环遍历了 a 数组中的所有元素,对于每一对 a[i] 和 a[j],如果它们的大小关系不正确,就通过 strcpy 函数交换它们的位置。

每个字符串本身都是一个char[]呀,这是5个字符串不是5个字符