【C语⾔】全局局部数组的初始值和初始化
写题⽬的时候以为数组的初始值都是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]);
}
return0;
}
运⾏结果如下:
由此可见
全局数组的初始值为0
局部数组的初始值为随机数
数组初始化
使⽤函数memset
eg:将数组初始化为0
char str[10];
memset(str,0,sizeof(str));
赋值
1. 直接给每个元素赋值
int arr[5] = {1,2,3,4,5};
2. 给⼀部分赋值,后⾯的全部为0
int arr[5] = {1,2};
3. 由赋值参数个数决定数组的个数
int arr[] = {1,2};
4. 数组元素的值是随机分配的
int array[4] = {};
5. 数组元素初始化为0
int array[4] = {0};
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论