一维数组的初始化问题(函数体内与函数体外)
2017-11-19 09:10
211 查看
数组元素初始化时,若没有显式提供幸元素的值,则元素会被像普通变量一样初始化:
函数体外定义的内置类型数组(即内置类型的全局数组),元素初始化为0;
函数体内定义的内置类型数组,元素无初始化(注意,若只初始化部分元素,其后的元素此时也会被初始化为0);
如果不是内置类型,则不管其在哪定义,自动调用其默认构造函数为其初始化,若该类型无默认构造函数则会报错。
下面针对1和2的不同给出具体例子:
1.对条件1给出的例子,此时输出的a[0]为0,初始化为了0
2.对条件2给出的例子,此时输出的a[0]为一个未初始化的值
函数体外定义的内置类型数组(即内置类型的全局数组),元素初始化为0;
函数体内定义的内置类型数组,元素无初始化(注意,若只初始化部分元素,其后的元素此时也会被初始化为0);
如果不是内置类型,则不管其在哪定义,自动调用其默认构造函数为其初始化,若该类型无默认构造函数则会报错。
下面针对1和2的不同给出具体例子:
1.对条件1给出的例子,此时输出的a[0]为0,初始化为了0
#include <iostream> using namespace std; int a[6];//数组a定义在主函数外 int main(){ cout << a[0] << endl; return 0; }
2.对条件2给出的例子,此时输出的a[0]为一个未初始化的值
#include <iostream> using namespace std; int main(){ int a[6];//数组a定义在主函数内 cout << a[0] << endl; return 0; }
相关文章推荐
- 函数体内和函数体外数组的初始化问题
- 一维数组的初始化问题
- 【java基础】引用类型数组初始化中,setter和getter函数空指针问题
- 《C++笔记》 Part7 一维数组与二维数组的初始化问题(vector)
- 一维或多维数组作为函数参数的问题
- [笔试题 6][c/c++]一维数组初始化问题
- 《c primer pius》第十章第6题,编写一个程序,初始化一个二维double数组,并利用练习2中的任一函数来把这个数组复制到另一个二维数组(因为二维数组是数组的数组,所以可以使用处理一维数组的
- 一维数组的初始化问题
- 一维数组的初始化问题
- memset函数初始化数组
- c语言数组初始化问题
- 关于算法—— 一维字符串数组之间组合问题的C#实现
- 【c语言】函数实现数组初始化,冒泡排序,现实,和清空功能
- 数组问题之一维最大字段和问题<Java实现>
- 对一个字符数组连续用gets函数出现的问题(缓冲区内容补充)
- 一维数组声明初始化,求最值 和 平均值
- 数组a[0]初始化问题
- C语言数组与函数问题归纳
- C++程序员学Java系列之十二:一维数组定义,初始化,遍历,最值及异常
- 利用函数调用,对数组进行初始化,更改,清零,逆置等操作