C 语言基础五: 数组
1.初始化数组
int arr1[4] = {1,2,3,4}
int arr2[] = {1,2,3,4}
2.访问数组中某个元素
printf("first:%d\n",arr2[0]);
3. 获取数组长度
printf("length:%lu\n",sizeof(arr1)/sizeof(arr1[0]));
4. 数组默认值
int a[5] = {10};
float b[3] = {0.2};
char c[3] = {"j"};
char *d[4] = {"apple"};
5. 当成参数传递
#include <stdio.h>
void printfArr(int arr[]);
int main(void){
int arr[] = {1,2,3,4,5};
printfArr(arr);
return 0;
}
void printfArr(int arr[]){
int len = sizeof(arr)/sizeof(int);
for (int i = 0; i < len; i++) {
printf("i:%d\n",arr[i]);
}
}
#include <stdio.h>
void printfArr(int arr[],int len);
int main(void){
int arr[] = {1,2,3,4,5};
int len = sizeof(arr)/sizeof(int);
printfArr(arr,len);
for (int i = 0; i < len; i++) {
printf("j:%d\n",arr[i]);
}
return 0;
}
void printfArr(int arr[],int len){
for (int i = 0; i < len; i++) {
printf("i:%d\n",arr[i]);
arr[i] = arr[i] * 2;
}
}
6. 二维数组
(1) 创建规则二维数组及遍历
//定义二维数组方式1
int arr[3][5] =
{
{1,2,3,4,5},
{11,22,33,44,55},
{111,222,333,444,555},
}
//遍历数组
for (int i = 0
for (int j = 0
printf("%d ",arr[i][j])
}
printf("\n")
}
(2) 不规则二维数组 - 注意点
int arr1[3] = {1,2,3};
int arr2[4] = {4,5,6,7};
int arr3[5] = {8,9,10,11,12};
int* arrx[3] = {arr1,arr2,arr3};
for (int i = 0; i < 3; i++) {
int len = sizeof(arrx[i])/ sizeof(int);
printf("len: %d \n",len);
for (int j = 0; j < len; j++) {
printf("%d ",arrx[i][j]);
}
printf("\n");
}
(3) 指针遍历二维数组
//定义二维数组方式2:
int arr1[3] = {1,2,3}
int arr2[4] = {4,5,6,7}
int arr3[5] = {8,9,10,11,12}
int len1 = sizeof(arr1)/sizeof(int)
int len2 = sizeof(arr2)/sizeof(int)
int len3 = sizeof(arr3)/sizeof(int)
int lenArr[] = {len1,len2,len3}
int* arrx[3] = {arr1,arr2,arr3}
//普通方式
for (int i = 0
for (int j = 0
printf("%d ",arrx[i][j])
}
printf("\n")
}
//指针遍历数组
for (int i = 0
for (int j = 0
printf("%d ",*(*(arrx + i) + j))
}
printf("\n")
}