【C语言_12】初识数组

时间:2022-10-03 13:01:45

1.什么是数组?

数组是由一系类型相同,数据对象依次排列组合而成。组成数组的数据对象,被称作数组的元素。

2.如何定义数组?

(1).定义数组

//声明数组
元素类型 数组名[元素数量]
//初始化数组
int arr[5]={1,2,3,4,5};
int arr[10]={1,2,3,4,5};//其他被填0
1 2 3 4 5 0 0 0 0 0//此时的数组
int arr[]={1,2,3,4,5,6,7,8,9,10}
//当然也可以由元素来决定数组的长度

(2).访问数组元素

数组名[下标]//数组名的下标是从0开始的
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9};
printf("%d\n",arr[4]);
return 0;
}

【C语言_12】初识数组

#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=0;i<10;i++){
printf("%d\n",arr[i]);
}
return 0;
}

【C语言_12】初识数组

(3).修改数组元素

#include<stdio.h>
int main()
{
int arr[10]={1,2};
printf("%d\n",arr[5]);
arr[5]=99;
printf("%d",arr[5]);
return 0;
}

【C语言_12】初识数组

3.数组所占空间

#include<stdio.h>
int main()
{
char arr1[10];
short arr2[10];
int arr3[10];
long long arr4[10];
float arr5[10];
double arr6[10];
printf("%d\n", sizeof(arr1));
printf("%d\n", sizeof(arr2));
printf("%d\n", sizeof(arr3));
printf("%d\n", sizeof(arr4));
printf("%d\n", sizeof(arr5));
printf("%d\n", sizeof(arr6));
return 0;
}

运行结果:

【C语言_12】初识数组

可以看出:数组所占的空间=单个元素所占的空间*数组元素个数

4.如何给数组赋值?

  • 不能整体复制。例:arr1=arr2(❌)
  • 初始化列表只能用于初始化,赋值不行。

(1).利用for循环赋值

#include<stdio.h>
int main()
{
int arr1[10] = { 0 };
int arr2[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0; i < 10; i++) {
arr1[i] = arr2[i];
printf("%d", arr1[i]);
}
return 0;
}

【C语言_12】初识数组

(2).内存复制memcpy函数

  • memory内存
  • copy复制
memcpy(目标数组,原始数组,需要赋值的字节大小)
#include<stdio.h>
#include<memory.h>
int main()
{
int arr1[10] = { 0 };
int arr2[10] = { 1,2,3,4,5,6,7,8,9,10 };
memcpy(arr1, arr2, sizeof(arr1));
for (int i = 0; i < 10; i++)
printf("%d", arr1[i]);
return 0;
}

【C语言_12】初识数组