码迷,mamicode.com
首页 > 编程语言 > 详细

<18>【掌握】二维数组定义+

时间:2015-07-08 14:30:36      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

【掌握】二维数组定义

 

   二维数组:
 
       可以看做是一个特殊的一维数组 ,这个一维数组的每个元素又是一个一维数组
 
   二维数组的定义
 
       数据类型   数组名[第一维的长度(行)][第二维的长度(列)];
 
       int a[2][3];
       理解方法:
       1)这是一个特殊的一维数组,一维数组有两个元素 a[0] a[1]
          a[0]  它又存放了一个一维数组该数组长度为 3
 
       2)定义了一个2行3列的一个矩阵
 
#include <stdio.h>
#define M 3

int main(int argc, const char * argv[]) {
    
    //定义一个二维数组
    int a[2][3];
    
    //注意事项
    // int b; 数组名不能和变量名同名
    int b[2][3];
    
    //数组的长度可以是常量表达式
    int c[2][1+3];
    
    //注意这种写法,其他的编译器可能不支持
    int m=3,n =3;
    int arr[m][n];  //xcode特有的
    
    //数组长度可以使用宏定义
    int arr2[3+M][2];
    
    return 0;
}

【掌握】二维数组初始化

二维数组的初始化
 
  
      1)定义的同时初始化
 
  
          (1)完全初始化
 
             int a1[2]={1,2};
 
             //1、特殊的一维数组,第一维有2个元素
             int a[2][3]={{12,23,45},{1,2,3}};  //分段
          
             12  23  45
             1   2   3
 
             //2、连续赋值
             int a[2][3]={1,2,3,4,5,6};
 
             //3、可以省略第一维
             int a[][3]={{1,2,3},{3,4,5},{3,4,5}}; //int a[3][3]
             int a[][2]={1,2,3,4,5,6,7,8};  //int a[4][2]
2)部分初始化
 
             //一般情况下我们用于给数组初始化为0
             int a[3][4]={1};
 
             1 0 0 0 
             0 0 0 0
             0 0 0 0
 
             int a[3][4]={{1},{2},{3}};
 
             1 0 0 0
             2 0 0 0
             3 0 0 0
 
              注意:这种写法第一维长度可以省略
 
             int a[3][4]={1,2,3,4,5};
 
             1 2 3 4
             5 0 0 0
             0 0 0 0

              //不能省略第一维,省略那第三行的0就没有了
 
      2)先定义,后初始化
 
         int a[3][4];
        第一维下标:0 1 2
        第二维下标:0 1 2 3
        a[0][0] = 1;
 
#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    int a1[2]={1,2};
    
    //1、特殊的一维数组,第一维有2个元素
    int a[2][3]={{12,23,45},{1,2,3}};  //分段
    
    //2、连续赋值
    int a2[2][3]={1,2,3,4,5,6};
    
    //3、可以省略第一维
    int a3[][3]={{1,2,3},{3,4,5},{3,4,5}}; //int a[3][3]
    int a4[][2]={1,2,3,4,5,6,7,8};  //int a[4][2]
    
    int a5[3][4]={1};
    //可以省略第一维
    int a6[3][4]={{1},{2},{3}};
    //可以省略第一维
    int a7[3][4]={1,2,3,4,5};  //int a7[2][4]
    
    //二维数组中,第一维可以省略,第二维长度不能省
    //int a8[3][]={1,2,3,4};
    return 0;
}

【掌握】二维数组遍历

 

   二维数组的遍历:
  
          访问二维数组的每一个元素
 
   如何访问?
 
          通过下标来访问
 
           int a[3][4];
 
              |    0    1   2   3
 --------------------------------
           0  |    00  01  02  03
 
 
           1  |    10  11  12  13
 
 
           2  |    20  21  22  23
 
 
#include <stdio.h>
void test(){

    int a[][4]={1,2,3,4,0,5,6,7,8,10,23,0};
    
    printf("%d\n",a[2][2]);
    //二维数组的每一个元素都是一个双下标变量
    a[2][2] = 100;
    printf("%d\n",a[2][2]);
    
    //每一个元素都打出来看下
    for(int i=0;i<3;i++){
        
        for (int j=0; j<4; j++) {
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }


}

int main(int argc, const char * argv[]) {
    
    test();
    printf("\n");
    
    int score[5][3] = {{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};
    
    for (int i=0; i<5; i++) {
        for (int j=0; j<3; j++) {
            printf("%d\t",score[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}
23
100
1    2    3    4    
0    5    6    7    
8    10    100    0    

80    75    92    
61    65    71    
59    63    70    
85    87    90    
76    77    85    

 

<18>【掌握】二维数组定义+

标签:

原文地址:http://www.cnblogs.com/kongweiiwei/p/4629925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!