码迷,mamicode.com
首页 > 编程语言 > 详细

数组初始化注意事项

时间:2021-04-07 11:45:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:第一个   元素   处理   数组元素   组元   维数   初始化列表   定义   delete   

静态数组 int array[100]; //定义了数组array,但并未对数组初始化;
静态数组 int array[100] = {0}; //定义了数组array,并将数组元素全部初始化为0;
静态数组 int array[100] = {1}; //定义了数组array,并将数组第一个元素初始化为1,后面99个元素初始化为0;
静态数组 int array[100] = {4,5}; //定义数组array,并初始化前两个元素为4,5,后面剩余元素初始化为0;

动态数组 int *p_array = new int[100]; delete []p_array; //分配了长度为100的数组array,并全部初始化为0;
动态数组 int *p_array = new int[100]{3,5}; delete []p_array; //前两个元素初始化为3和5,后面的原始初始化为0;
int *array = new int[m][3][4]; //只有第一维可以是变量,其他维数必须是常量,否则会报错

 

如果不明确指出初始化列表,那么基本类型是不会被初始化的(除全局变量和静态变量外),所有的内存都是“脏的”;而类类型则会为每个元素调用默认构造函数进行初始化(注意,在C++11中中间的赋值号可以省略,即 int a[5]{1};并且,如果初始化列表为空,如 int a[5]{},那将初始化所有元素为默认值,即与 int a[5]{0})

 

memset()的功能是对str的每一个字节进行初始化,int占四个字节,所以对int数组进行非0赋值或初始化时不能用memset()函数,只能循环处理/定义时初始化

 

数组初始化注意事项

标签:第一个   元素   处理   数组元素   组元   维数   初始化列表   定义   delete   

原文地址:https://www.cnblogs.com/Eusionblogs/p/14623402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!