这个东西本来我是不太清楚的,正好碰到了这样的一个题目,就自己尝试了一下
如下
#include<stdio.h> void main() { //二维数组a[]如果为 char a[3][4]={"1","23","456"}; printf("%s ",a[0]); //输出结果为1 printf("%s ",a[1]); //输出结果为23 printf("%s ",a[2]); //输出结果为456 }
我们不难看出来,二维数组中,如果我们在输出或者调用的时候,调用形式为a[0]这样的形式,对应的结果则是该行的数组的数据,但是这在其他几种数据类型中都适用吗?
我们继续试一下,如下
#include<stdio.h> void main() { //二维数组a[]如果为 int a[3][4]={1,2,3,4,5,6,7,8,9,0}; printf("%d ",a[0][0]); //输出结果为1 printf("%d ",a[1][0]); //输出结果为5 printf("%d ",a[2][0]); //输出结果为9 }
这里要注意,如果要写成数字的二维数组不要写成一下错误形式
int a[3][4]={1234567890}; //超过了int的范围,而且这只有一个数据,那就是1234567890 int a[3][4]={1 2 3 4 5 6 7 8 9 0}; //这里编译器会报错的,int数组里面不能存放空格,系统也不会认为他是一个分隔符
字符型时
#include<stdio.h> void main() { //二维数组a[]如果为 char a[3][4]={'1','2','3','4','a','6','7','8','A','0'}; printf("%d ",a[0][0]); //输出结果为1的asc对应的值47 printf("%d ",a[1][0]); //输出结果为a的asc对应的值97 printf("%d ",a[2][0]); //输出结果为A的asc对应的值65 }
要注意不要犯数字二维数组的错误,字符型数组虽然可以收入空格,但是直接打的空格不是常量,数组中存放的都是常量如果一定要输出空格,可以采用‘ ’ 的方法输出。
以上这两种形式都不可以使用a[0],a[1],a[2]的,类型这种输出方法,只能在字符串中使用。
//第一次写博客,如有错误,请指正,谢谢