zoukankan      html  css  js  c++  java
  • C语言学习二维数组

    二维数组的定义

    1.类型  数组名[常量表达式][常量表达式],注:只有第一维可以不写常量,后面必须要加上。

    int a[6][6]; 6行6列

    char b[4][5]; 4行5列

    double  c[6][3]; 6行3列

    int b[4][5];

     2.二维数组的访问

    数组名[下标][下标]

    a[0][0]; //访问a数组中第1行第1列的元素

    •同样需要注意下标的取值范围,以防止数组的越界访问。

    比如int a[3][4]; 其“行下标”的取值范围是0~2,“列下标”的取值范围为0~3,超出任何一个下标的访问都是越界访问。

     3.声明与初始化二维数组

    (1).完整声明,完整初始化:int x[3][2]={1,2,3,4,5,6};

    (2)不完整声明,完整初始化:int x[][2]={{1,2},{3,4},{5,6}};

    (3)完整声明,不完整初始化:int x[3][4]={0};

    C99同样增加了一种新特性;指定初始化的元素,可以对数组中某些指定元素进行初始化赋值,其他元素则被初始化为0;

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

    #include <stdio.h>
    
    int main()
    {
        int a[4][5] = {
            {80, 92, 85, 86, 99},
            {78, 65, 89, 70, 99},
            {67, 78, 76, 89, 99},
            {88, 68, 98, 90, 99}
        }; 
        int i, j;
    
        for (i = 0; i < 5; i++)
        {
            for(j = 0; j < 4; j++)
            {
                printf("%d ", a[j][i]);
            }
            printf("
    ");
        }
    
        return 0;
    }

    #include <stdio.h>
    
    int main()
    {
        int array[4][5] = {0};
        int i, j, k = 0;
    
        for (i = 0; i < 4; i++)
        {
            for (j = 0; j < 5; j++)
            {
                array[i][j] = k++;
            }
        }
    
        printf("*(array+1): %p
    ", *(array + 1));
        printf("array[1]: %p
    ", array[1]);
        printf("&array[1][0]: %p
    ", &array[1][0]);
        printf("**(array+1): %d
    ", **(array+1));
    
        return 0;
    }

    #include <stdio.h>
    
    int main()
    {
        int array[2][3] = {{0, 1, 2}, {3, 4, 5}};
        int (*p)[3] = array;
    
        printf("**(p+1): %d
    ", **(p+1));
        printf("**(array+1): %d
    ", **(array+1));
        printf("array[1][0]: %d
    ", array[1][0]);
        printf("*(*(p+1)+2): %d
    ", *(*(p+1)+2));
        printf("*(*(array+1)+2): %d
    ", *(*(array+1)+2));
        printf("array[1][2]: %d
    ", array[1][2]);
    
        return 0;
    }

     4.结论

    *(array+i)==array[i];

    *(*(array+i)+j)==array[i][j];

    *(*(*(array+i)+j)+k)==array[i][j][k]; 

  • 相关阅读:
    【转】禁用chrome firefox 的 WebRTC功能防止真实IP泄漏
    这是我的主场
    【转】反编译获取任何微信小程序源码(完)
    【转】npm 安装express npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE
    查询最新的邮编地区
    【转】汇编语言入门教程
    Microsoft Windows远程桌面协议中间人攻击漏洞(CVE-2005-1794)漏洞解决方案(Windows server2003)
    IIS隐藏版本号教程(Windows Server 2003)
    Windows Server 2003添加防火墙策略教程
    Tomcat禁用SSLv3和RC4算法
  • 原文地址:https://www.cnblogs.com/guoweilf/p/11547831.html
Copyright © 2011-2022 走看看