7、二維陣列
阿新 • • 發佈:2018-12-18
二維陣列
#include <stdio.h>
int main(int argc, char const *argv[])
{
//1.有多少[]就有多少維
//2.記憶體中沒有多為,都只有一維,多維陣列是特殊的一維陣列
//3.定義了一個一維陣列a[3],這個一維陣列有3個元素,每個元素int[4]
//4.a[0],a[1],a[2]就是第0、1、2元素的陣列
//5.二維陣列,使用者可以理解為m行n列
int a[3][4];
int i,j;
for(i=0; i<3; i++)
{
for (int j = 0; j < 4; j++)
{
a[i] [j] = num;
num++;
}
}
//看方便,寫不方便
int a1[3][4] =
{
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10 , 11}
};
int a1[3][4] = {0, 1, 2, 3,4, 5, 6, 7, 8, 9, 10, 11};
//如果定義時,同時初始化,第一個[]可以不寫內容
int a2[][4] = {0, 1, 2, 3,4, 5, 6, 7, 8, 9, 10, 11};
//如果第一個[]不寫,必須初始化
//int a3[][4];//err
int a3[3][4] = {0, 1, 2, 3};//沒有初始化的元素賦值為0
int a4[3][4] = {0};//所有元素初始化為0
return 0;
}
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a[5][10];
//1.陣列名是常量,不能修改
//ar = 10;//err
//2.sizeof(陣列名),測陣列的總大小:int[10] = 5 * 4 * 10 = 200
printf("sizeof(a) = %lu\n", sizeof(a));
//3.sizeof(a[0]),測的是第0個元素的大小: int [10] = 4 * 10 = 40
printf("sizeof(a[0]) = %lu\n", sizeof(a[0]));
//4.sizeof(a[0][0]),測的是第0行第0列元素的大小,int = 4
printf("sizeof(a[0][0]) = %lu\n", sizeof(a[0][0]));
//5.求行數(元素個數):總大小/每個元素的大小
int n = sizeof(a)/sizeof(a[0]);
//6.求列數
n = sizeof(a[0])/sizeof(int);
printf("n1 = %d\n", n);
//7.行*列
n = sizeof(a)/ sizeof(int);
printf("n2 = %d\n", n);
return 0;
}