/****************************************1(一维数组)*************************************************/
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
/*for (i = 0; i < sz; i++)
{
printf("%d ",arr[i]);//1 2 3 4 5 6 7 8 9 10
}*/
int de = sz - 1;
for(de; de >= 0; de--)
{
printf("%d ", arr[de]);//10 9 8 7 6 5 4 3 2 1
}
return 0;
}
/*************************************************2**********************************************************/
一维数组在内存中的存储
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
//
for (i = 0; i < sz; i++)
{
printf("&arr[%d]=%p\n",i, &arr[i]);
}
/*for (i = 0; i < sz; i++)
{
printf("%d ",arr[i]);//1 2 3 4 5 6 7 8 9 10
}*/
int de = sz - 1;
for(de; de >= 0; de--)
{
printf("%d ", arr[de]);//10 9 8 7 6 5 4 3 2 1
}
return 0;
}
运行结果如下
一维数组总结:
仔细观察输出的结果,我们知道,随着数组下标的增长,元素的地址,也在有规律的递增。
由此可以得出结论:数组在内存中是连续存放的。
/****************************************3(二维数组)***************************************************/
int main()
{
int arr[3][4] = {1,2,3,4,2,3,4,5,4,5,6,7};//三行四列
int i = 0;//行
for (i = 0; i < 3; i++)
{
int j = 0;//列
for (j = 0; j < 4; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
运行结果如下
int main()
{
int arr[3][4] = {1,2,3,4,2,3,4,5,4,5,6,7};//三行四列
//printf("%d\n",arr[2][0]);//4
int i = 0;//行
for (i = 0; i < 3; i++)
{
int j = 0;//列
for (j = 0; j < 4; j++)
{
//printf("%d ",arr[i][j]);
scanf("%d",&arr[i][j]);
}
}
for (i = 0; i < 3; i++)
{
int j = 0;//列
for (j = 0; j < 4; j++)
{
printf("%d ",arr[i][j]);
//scanf("%d", &arr[i][j]);
}
printf("\n");
}
return 0;
}
/****************************************4(二维数组)***************************************************/
二位数组的存储也是4个字节一个空间。如下图所示
/****************************************4冒泡排序***************************************************/
//冒泡排序
int main()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz - 1; i++)
{
int j = 0;
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < sz; i++)
{
printf("%d ",arr[i]);//0 1 2 3 4 5 6 7 8 9
}
return 0;
}
//冒泡排序,函数的方法
void maopao(int arr[],int sz)
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
int j = 0;
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
//冒泡排序
int main()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
maopao(arr,sz);
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);//0 1 2 3 4 5 6 7 8 9
}
return 0;
}
/****************************************5二维数组***************************************************/
二维数组的数组名的理解
/****************************************6二维数组思维导图****************************************/