写题目的时候以为数组的初始值都是0,结果提交答案出错TvT
后来一查发现全局数组和局部数组的初始值结果还不一样
先来看一段代码
#include<stdio.h>
int a[5];
int main()
{
int i;
int b[5];
printf("全局数组:\n");
for(i=0;i<5;i++){
printf("%d ",a[i]);
}
printf("\n");
printf("局部数组:\n");
for(i=0;i<5;i++){
printf("%d ",b[i]);
}
return 0;
}
运行结果如下:
由此可见
- 全局数组的初始值为0
- 局部数组的初始值为随机数
数组初始化
使用函数memset
memset函数用法
eg:将数组初始化为0
char str[10];
memset(str, 0, sizeof(str));
赋值
- 直接给每个元素赋值
int arr[5] = {1,2,3,4,5}; - 给一部分赋值,后面的全部为0
int arr[5] = {1,2}; - 由赋值参数个数决定数组的个数
int arr[] = {1,2}; - 数组元素的值是随机分配的
int array[4] = {}; - 数组元素初始化为0
int array[4] = {0};