文章目录
总结一、全局变量数组二、局部变量数组1.垃圾值2.最简单:初始化为空3.memset()(1)头文件(2)函数原型(3)局限
4.fill()(1)头文件(2)例子
总结
全局变量数组未初始化,则其默认值全为0.局部变量数组未初始化,则其默认值随机,需要手动清零。数组初始化为空最简单。
PS:关于所用函数的解析
一、全局变量数组
#include
int a[100];
int main()
{
printf("%d ", a[0]);
//0
return 0;
}
自动为0,所以直接使用就ok。
二、局部变量数组
1.垃圾值
#include
int main()
{
int a[100];
printf("%d ", a[0]);
//-858993460
return 0;
}
2.最简单:初始化为空
简单到哭了QAQ
int a[5] = {};
字符数组都行:
char buff[1000] = {};
char buff[1000] = "";
3.memset()
(1)头文件
C:#include
C++:#include
(2)函数原型
void *memset(void *s,int c,size_t n)
作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。
参数:s代表数组名,c代表要设置的值,n代表内存空间。
注意:第三个参数表示内存空间,而不是元素个数,内存空间=元素个数*每个元素所占空间。
int a[5];
memset(a,0,sizeof(a));
for(int i=0;i<5;i++)
cout<
//0 0 0 0 0 (3)局限 一般来说用0或-1初始化,别的值会发生意想不到的错误 int a[5]; memset(a,1,sizeof(a)); for(int i=0;i<5;i++) cout<
//16843009 16843009 16843009 16843009 16843009 第二个参数c的值的范围是0x00-0xff 意义:如memset(s,1,n),c就是0x01,c是int型,四个字节(0x01010101),转化成十进制就是1643009 int a[5]; cout<<0x02<<' '<<0x02020202< memset(a,2,sizeof(a)); for(int i=0;i<5;i++)