#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 ", arr[i][j]);
}
printf("
");
}
printf("二维数组大小:%d
", sizeof(arr));//行*列*数据类型 2*3*4=24
printf("二维数组一行的大小%d
", sizeof(arr[0]));//12
printf("二维数组元素大小%d
", sizeof(arr[0][0]));//4
printf("二维数组行数:%d
", sizeof(arr) / sizeof(arr[0]));//24/12=2
printf("二维数组列数:%d
", 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 ", &arr[i][j]);
}
}
printf(" ");
//二维数组首地址
//arr[0]=100;err//二维数组中一个下标,表示一行的数据,不是一个具体的值
printf("%p
", arr);
printf("%p
", arr[0]);//第一行与第二行相差12个地址
printf("%p
", arr[1]);//第二行
printf("%p
", &arr[0][0]);//[0][0]是一个值,需要加上&
printf("%p
", &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 ", arr[i][j]);
}
printf(" ");
}
return 0;
//结果
}