一、一维数组
1.int arr[10]={0};
此时是将第一个元素初始化为0,其他元素也初始化为0,
int arr[10]={2};
将第一个元素初始化为2,其他元素初始化为0;
2.在静态区中存储的数据都会初始化为0.如全局变量和静态变量;
在栈区中存储的数据都会给一个随机值。
3.数组的初始化:char类型的数组进行初始化时,如,char arr[6]="abc";
此时arr[4]、arr[5]的值都为0.
4.一维数组在内存中是连续存放的;
地址由低到高变化。
二、二维数组
5.int arr[3][4]={1};
创建了一个三行四列的二维数组。
三、数组作为函数参数
6.数组名是首元素地址,但有两个例外
(1)sizeof(arr),此时arr不是首元素地址,表示的是整个数组,计算的是整个数组的大小
(2)&arr 此时数组名表示的是整个数组,取出的是整个数组的地址
7.冒泡排序
#include <stdio.h>
void bubble_sort(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
int j = 0;
int flag = 1;
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
flag = 0;
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
if(flag == 1)
{
break;
}
}
}
int main()
{
//冒泡排序
int arr[10] = { 4,2,5,1,3,6,7,10,9,8 };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}