C语言中 5.已知:int a[1,2,3,4]:,若int型变量占4个字节,则数组a在内存中所占的字节数是( C ) A) 16 B) 20 C) 40 D) 不变
时间: 2024-02-15 14:51:20 浏览: 33
选B) 20。
数组a的元素个数是4个,每个元素占4个字节,因此数组a在内存中所占的字节数是4*4=16字节。
但是,这里的数组定义有问题,应该是int a[4]={1,2,3,4};。因为C语言中,数组的定义方式是a[n],其中n表示数组的元素个数。在这个问题中,数组定义为a[1,2,3,4],实际上只定义了一个元素,其值为4,因此编译器会将其解释为int a[4]={4};。
相关问题
c语言中若有说明:inta[][4]=10,0};则表示二维数组a的第一维大小为 1。请判断是否正确,并解释。
这个说明是不正确的。根据C语言的语法规则,如果我们使用下面的语句定义一个二维数组:
```c
int a[][4] = {{10, 0}};
```
那么这个二维数组的第一维大小就是1,也就是说这是一个只有一行、四列的二维数组。
但是,如果我们使用下面的语句定义一个二维数组:
```c
int a[][4] = {10, 0};
```
这时,编译器会把这个初始化列表当作一个一维数组来处理,然后根据数组元素的个数来计算出第一维的大小。因为这个初始化列表中有两个元素,所以编译器会把这个数组的第一维大小设置为2,第二维大小设置为4。
所以,正确的说明应该是:
```c
int a[][4] = {10, 0};
```
这个二维数组的第一维大小是2。
c语言中若有说明:int a[][4]={0,0};则表示二维数组a的第一维大小为 1。请判断是否正确,并解释。
这个说明是正确的。根据C语言的语法规则,如果我们使用下面的语句定义一个二维数组:
```c
int a[][4] = {0, 0};
```
那么这个二维数组的第一维大小就是1,也就是说这是一个只有一行、四列的二维数组。
初始化列表中只有两个元素,所以编译器会把这个数组的第一维大小设置为1,第二维大小设置为4。
所以,这个说明是正确的。