数组概念
一个或多个数的相同类型的数据放在一个组合里面
数组的初始化
type arr_name[常值量]
类型有:int char double short float
比如:
//一个班学生的名字,身高,分数
double height[5]; //身高
char name[5]; //名字
int xuehao[5]; //分数
一维数组
一维数组的初始化
关于行的写法
行可以不用写,vs会根据你所初始化的数来判断行
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
// 0 1 2 3 4 5 6 7 8 9(这是数组中数字对应的下标)
输出所需的数组中数字对应的下标
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
// 0 1 2 3 4 5 6 7 8 9 (数组中元素对应的下标)
printf("%d\n", arr[6]);//打印数组的数,对应的其下标
return 0;
}
控制台打印输出:7
一维数组元素的个数sz
int main()
{
int arr[10]={ 1,2,3,4,5,6,7,8,9,10 };
int sz=sizeof(arr)/sizeof(arr[0]);
printf("%d ",sz);
return 0;
}
控制台打印输出sz:10
打印一维数组
在vs中定义,在控制台中输出
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;// 0 1 2 3 4 5 6 7 8 9 (数组元素对应的下标)
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
在控制台输入并输出
容易理解版
int main()
{
int arr[10] = { 0 };
int i = 0;
printf("请输入十个数:");
//输入
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
//输出
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
简化版
int main()
{
int arr[10] = { 0 };
int i = 0;
printf("请输入十个数:");
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]); //输入
printf("%d ", arr[i]); //输出
}
printf("\n");
return 0;
}
一维数组在内存中的储存
int main()
{
int arr[10] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < 10; i++)
{
printf("&arr[%d]=%p\n", i, &arr[i]);//&arr[i]是取数组的每一位下标对应元素的地址
// i是数组的下标
}
return 0;
}
控制台打印输出一维数组各元素所对应下标的地址:
二维数组
二维数组的创建
type arr_name[常量值1][常量值2]
行 列
二维数组的初始化
//初始化两行三列
int arr[2][3] = { 1,2,3,4,5,6 }; //初始化格式一
int arr[2][3] = { 1,2,3, 4,5,6 }; //初始化格式二
int arr[2][3] = { {1,2,3},{4,5,6} };//初始化格式三
关于行列的写法
行可以不用写,vs会根据你所初始化的数来判断行,但是列必须要写
int arr[][3] = { {1,2,3},{4,5,6} };
二维数组元素的个数sz
二维的sz和一维的sz计算方式一样,二维数组的sz就是在计算行号。
int sz = sizeof(arr) / sizeof(arr[0]) ;
打印二维数组
容易理解版
int main()
{
int arr[3][3] = { 0 };
int i = 0;//i控制行
printf("请输出三行三列的二维数组:\n");
for (i = 0; i < 3; i++)
{
int j = 0;//j控制列
for (j = 0; j < 3; j++)
{
//输入
scanf("%d", &arr[i][j]);
}
}
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 3; j++)
{
//输出
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
简化版
int main()
{
int arr[3][3] = { 0 };
int i = 0;//i控制行
printf("请输出三行三列的二维数组:\n");
for (i = 0; i < 3; i++)
{
int j = 0;//j控制列
for (j = 0; j < 3; j++)
{
scanf("%d", &arr[i][j]);
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
控制台打印输出:
二维数组在内存中的储存
int main()
{
int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
int i = 0;//i控制行
for (i = 0; i < 3; i++)
{
int j = 0;//控制列
for (j = 0; j < 3; j++)
{
printf("&arr[%d][%d]=%p\n", i, j, &arr[i][j]);
}
printf("\n");
}
return 0;
}
控制台打印输出:
完!!!
感谢你的浏览和观看,你的点赞+关注是我持续写作的动力。
谢谢!!!