若有说明:int a[3][4];则数组a中各元素是()

A.数组a的每个元素都可以得到初值0
B.可以程序的
a.可在程序的运行阶段得到初值0
b.可在程序的编译阶段得到初值0
c.不能得到确定的值
d.可在程序 编译或运行阶段得到初值0
请问是哪个答案?为什么?(上面两个大写AB答案要去掉)

不能得到确定的初值。int a[3][4]定义了数组但未赋初值,系统为所定义的数组在内存中开辟了已连续的存储单元,但这些存储单元中没有确定的值。

若数组中的数据都是后来获取并且数据过多时,其中的元素个数可表示为count = sizeof(a)/sizeof(a[0]),在执行循环语句中条件判断语句时,这样更方便。

若定义为全局变量,若不赋值,则默认所有元素为0;若定义为局部变量,若不赋值,则默认元素值均为随机(垃圾值)。

扩展资料

定义数组的知识点:

1、若仅初始化其中部分元素,则其余值均为0;

2、一维数组不能定义为a[],必须给长度,二维数组不能定义为a[][],必须给列赋长度如a[][10];

关于数组的各种表示的含义:

1、一维数组:

&a[0]:数组首元素地址;

&a:数组首元素地址;

&a:整个数组的地址;

2、二维数组:

&a[0][0]:首行首元素的地址;

a[0]:首行首元素;

&a[0]:首行地址;

a:首行地址;

&a:整体数组的地址;

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
C

static型数组不进行初始化时,如果是数值类型数组(如整型、实型)默认值为0;如果是字符型数组默认值为空字符’\0’(ASCII码为零的字符)。

auto型数组不进行初始化时,编译器不为其自动指定初始值。其初始值为系统分配给数组各元素的内存单元原来的值,这个值是不可预知的。本回答被提问者采纳
第2个回答  2019-06-15
int
a[3][4],这个声明的第二维是4个元素,下标应该是从0到3。而a中第二维的下标为4,大于3,越界。
欢迎访问我的论坛:
http://www.chinesebloger.com
期待您的支持:)