提示:以下是本篇文章正文内容,下面案例可供参考
一、数组
数组在内存中是连续存放的
数组名就是数组首元素地址
int arr[]={1,2,3};
int *parr=arr;
二、一维数组创建及初始化
1.数组创建
int arr[10];
char str[10];
2.数组创建并初始化
int arr[5]={1,2,3,4,5}; 完全初始化
int arr1[5]={1,2,3}; 不完全初始化,其余默认为0
int arr2[]={1,2,3,4,5}; 根据初始化内容,自动确定数组元素个数
char str1[5]="abc"; 不完全初始化,其余默认为0或'\0'
char str2[]="abc"; 自动在末尾加"\0"
char str3[]={'a','b','c'}; 不会自动再添加"\0"
char str4[10]={'a','b','c'}; 不完全初始化,其余默认为0或'\0'
三、二维数组的创建及初始化
int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 完全初始化
int arr[3][4]={1,2,3,4,5,6,7,8,9,10}; 不完全初始化,其余默认补0
int arr[3][4]={{1,2},{3,4,},{5,6}}; 不完全初始化,其余默认补0
int arr[][4]={{1,2},{3,4,},{5,6}}; 行可以省略,列不可以省略
四、数组作为参数
数组作为参数的时候,数组的大小需要在外部计算,作为一个参数传递进去
五、数组名是什么
数组名是首元素地址
例外:
- sizeof(数组名) 数组名表示整个数组,计算的是整个数组的大小 单位字节
- &数组名 数组名表示整个数组 取出的是整个数组的地址
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%p\n",arr);
printf("%p\n",arr[0]); 相等
六、冒泡排序
#include <stdio.h>
int main() {
//冒泡排序,升序
int arr[] = { 9,8,7,6,5,4,3,2,1 };
int size = sizeof(arr) / sizeof(arr[0]);
int i = 0;
int j = 0;
for (i = 0; i < size - 1;i++) {
for (j = 0; j < size - 1 - i;j++) {
if (arr[j]>arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
for (int i = 0; i < size;i++) {
printf("%d ",arr[i]);
}
return 0;
}