标签:
【掌握】二维数组定义
二维数组: 可以看做是一个特殊的一维数组 ,这个一维数组的每个元素又是一个一维数组 二维数组的定义 数据类型 数组名[第一维的长度(行)][第二维的长度(列)]; 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
标签:
原文地址:http://www.cnblogs.com/kongweiiwei/p/4629925.html