C语言二维数组的指针引用

这个东西本来我是不太清楚的,正好碰到了这样的一个题目,就自己尝试了一下

如下

#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]的,类型这种输出方法,只能在字符串中使用。

//第一次写博客,如有错误,请指正,谢谢

悟已往之不谏,知来者之可追
原文地址:https://www.cnblogs.com/ljh-study/p/12653572.html