美文网首页
C语言二维数组

C语言二维数组

作者: AuglyXu | 来源:发表于2018-09-06 14:38 被阅读0次

    二维数组

    • 格式: 数据类型 数组名称[一维数组的个数][一维数组中元素的个数];
    • 数据类型: 一维数组中存储数据的类型
    • 数组名称: 标识符
    • 二维数组其实也是一个数组, 只不过数组中的元素比较特殊, 每个元素又是一个数组而已

    二维数组的遍历

        for(int i = 0; i < 2; i++){
              for(int j = 0; j < 3; j++){
                printf("scores[%i][%i] = %i\n", i, j,scores[i][j]);
            }
        }
    

    二维数组的内存表现形式

    char chs[2][3] = {{'l','n','j'}, {'z','q','x'}};

    图片如下:


    由图可见:
    chs = &chs = &chs[0] = &chs[0][0] //结果都为二维数组中第一维数组中首元素的地址


    二维数组和函数

    注意点:

    1.如果形参时基本数据类型, 那么在函数内修改形参不会影响到外界的实参

    2.如果形参是数组, 那么在函数内修改形参会影响到外界的实参

    void change1(char ch){
        ch = 'T';
    }
    char chs[2][3] = {{'l','n','j'}, {'z','q','x'}};
    printf("chs[0][0] = %c\n", chs[0][0]); // l
    change1(chs[0][0]);
    printf("chs[0][0] = %c\n", chs[0][0]);  // l
    

    注意点:以下代码改变的是chs[1][0]的数据!!!

    void change2(char ch[]){
        ch[0] = 'T';
    }
    printf("chs[0][0] = %c\n", chs[0][0]); // l
    change2(chs[1]);
    printf("chs[1][0] = %c\n", chs[1][0]);  // T
    

    注意点:以下代码二维数组的一位数组的元素个数不能少

    void change3(char ch[][3]){
        ch[0][0] = 'T';
    }
    printf("chs[0][0] = %c\n", chs[0][0]); // l
    change3(chs);
    printf("chs[0][0] = %c\n", chs[0][0]); // T
    

    二维数组的初始化

    1.定义的同时初始化 {{},{}}

     int nums[2][3] = {{1, 3, 5},{2, 4, 6}};
    

    2.先定义再初始化

    int nums[2][3];
    nums[0][0] = 999;
    nums[0][1] = 888;
    nums[0][2] = 777;
    nums[1][0] = 666;
    nums[1][1] = 555;
    nums[1][2] = 444;
    

    3.特殊的方式 (作为了解)
    如果在定义的同时初始化, 那么二维数组中一维数组的个数可以省略

    int nums[][3] = {{1, 3, 5},{2, 4, 6}};
    

    如果在定义的同时初始化, 那么初始化中每个一维数组的{}也可以省略
    会依次从前往后存入一维数组

    int nums[][3] = {1, 3, 5 ,2, 4};
    {{1, 3, 5},{2, 4, 0}}
    

    注意点: 二维数组中每一个一维数组元素的个数不能省略
    以下定义都会报错

    int nums[2][] = {{1, 3, 5},{2, 4, 6}};
    int nums[][] = {{1, 3, 5},{2, 4, 6}};
    
    int nums[2][3];
    nums = {{1, 3, 5},{2, 4, 6}};
    

    相关文章

      网友评论

          本文标题:C语言二维数组

          本文链接:https://www.haomeiwen.com/subject/pfkxgftx.html