#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main01()
{
//一維數組:數據類型 數組名[元素個數]={值1,值2}
/*二維數組數據類型 數組名[行][列]=
{
{值1,值2},
{值3,值4}
}
*/
int arr [2] [3]=
{
{1,2.3}.
{4,5,6}
};
arr[1][2] = 20;//6=20
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
printf("二維數組大小:%d\n", sizeof(arr));//行*列*數據類型 2*3*4=24
printf("二維數組一行的大小%d\n", sizeof(arr[0]));//12
printf("二維數組元素大小%d\n", sizeof(arr[0][0]));//4
printf("二維數組行數:%d\n", sizeof(arr) / sizeof(arr[0]));//24/12=2
printf("二維數組列數:%d\n", sizeof(arr[0]) / sizeof(arr[0][0]));//12/4=3
return 0;
//結果

}
int main02()
{
int arr[2][3]=
{
{1,2,3},
{4,5,6}
};
//for(int i=0;i<6;i++)
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%p\n", &arr[i][j]);
}
}
printf("\n\n\n");
//二維數組首地址
//arr[0]=100;err//二維數組中一個下標,表示一行的數據,不是一個具體的值
printf("%p\n", arr);
printf("%p\n", arr[0]);//第一行與第二行相差12個地址
printf("%p\n", arr[1]);//第二行
printf("%p\n", &arr[0][0]);//[0][0]是一個值,需要加上&
printf("%p\n", &arr[0][1]);//[0][0]和[0][1]相差4個地址
return 0;
//結果

}
int main03()
{
//二維數組初始化
//int arr[2][3] = { {1,2,3},{4,5,6} };
//int arr[][3] = { 1,2,3,4,5,6 };//將2省略,會根據3列知2行
//int arr[][3] = { 1,2,3,4,5,6,7 };//{1,2,3},{4,5,6},{7,0,0}會補0
//int arr[][] = { 1,2,3,4,5,6 };err;列不能省略,只有挨着數組名的可以省略
//int arr[][3]={0};1行3列,相當於一維數組
int arr[2][3] = {1,2,3,4,5,6};//一般不這樣寫
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
return 0;
//結果

}
