大家好,今天小编关注到一个比较有意思的话题,就是关于c语言初始化数组为0的问题,于是小编就整理了3个相关介绍c语言初始化数组为0的解答,让我们一起看看吧。
数组如何快速初始化为某个值?
一般对数组初始化可以用以下方法实现:(1)在定义数组时对数组元素赋以初值。如:1static int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。(2)初始化时可以只对一部分元素赋初值。例如:1static int a[10]={0,1,2,3,4};定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。(3)如果想使一个数组的元素值全部为0,可以用下面的方法:1static int a[10]={0,0,0,0,0,0,0,0,0,0};不能用:1static int a[10]={0*10};如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。(4)在对全部数组元素赋初值时,可以不指定数组。
二维数组初始化时,为什么不能省略第二维的长度?
如果对全部元素都付出值,则定义数组时,可以不指定第一位的长度,但第二位的长度不能少。例如:
int a【3】【4】={1,2,3,4,5,6,7,8,9,10,11,12};
可以写为:
int a【】【4】={1,2,3,4,5,6,7,8,9,10,11,12};
系统会根据数据总个数分配存储空间,一共12个数据,每行四列,当然可确定为3行,但不能写成:
int a【】【】={1,2,3,4,5,6,7,8,9,10,11,12};
因为第二个维数省略时,可以理解为多种形式,系统无法分配行列,空间会发生混淆,所以只能省略第一维数。
对象/数组初始化什么时候需要常量表达式?
这样一般可以的到更高的效率。
更多信息可以参考本人文章:
C++11新特性(3)-const, const expression和constexpr
到此,以上就是小编对于c语言初始化数组为0的问题就介绍到这了,希望介绍关于c语言初始化数组为0的3点解答对大家有用。