char cname(11)(21);
for(int i=1;i<=10;i++)
gets(cname(i));
以上为什么二维数组可用一维数组输入
char cname[11][21]二维字符数组可以分解成11个一维字符数组,即 cname[0],cname[1],cname[2]......cname[10]。
每一个一维数组又包含了 21 个元素.
gets的参数是接收一个一维字符数组的首地址,每次读取一行内容存入这个字符数组
而cname[i]就是一维字符数组,返回这个一维字符数组的首地址
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
char cname(11)(21)=====这是什麽东西啊。。。。。。
是 char cname[11][21]吧?
for(int i=1;i<=10;i++)
gets(cname[i]);
这是用循环方式输入10个字符串。二维数组相当于字符串数组,只不过每个字符串本身是一个数组,所以就是二维数组了。
因为gets和别的输入不一样的是接收一个字符串,字符串就是字符数组,一次性输入一个数组,从而不需要加for循环,这样看起来就像是一维数组输入数据