对二维数组的正确定义是( )
A.int a[ ] [ ]={1,2,3,4,5,6}; B.int a[2] [ ]={1,2,3,4,5,6};
C.int a[ ] [3]={1,2,3,4,5,6}; D.int a[2,3]={1,2,3,4,5,6};
b这种情况不能神略,c这种情况可以
第一维的长度可以不指定,但第二维的长度不能省
第一维的长度可以不指定,但第二维的长度不能省。
#include <stdio.h> #include <malloc.h> int main(){ int array[][3] = {2,3,4,1,1,3,4,5}; int space = sizeof(array); int *pointer = (int *)malloc(sizeof(int)); //printf("%d\n",sizeof(pointer)); //printf("%d\n",array); //printf("%d",space); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%2d ",array[i][j]); } printf("\n"); } getchar(); getchar(); return 0; }
这个数组是一个二维数组,包含两行三列。可以用以下方式表示:
a[0][0] = 1, a[0][1] = 2, a[0][2] = 3 a[1][0] = 4, a[1][1] = 5, a[1][2] = 6
在内存中,这个数组的结构是连续存储的,按行存储。
C是正确的定义,第一维不写只写第二维这样的数组叫柔性数组。
a[2,3] 中间用逗号肯定不行
第一维的长度可以不指定,但第二维的长度不能省。系统会根据数据总数和第二维的长度算出第一维的长度。但这种省略的写法几乎不用,因为可读性差。
C
用户登录可进行刷题及查看答案
登录后提交答案