什么是" int * a [] [10];"?

时间:2016-09-06 21:06:54

标签: c++ arrays pointers

问题在于标题:

什么是int * a[][10];

它是一个指向int数组的指针数组吗?我试着顺时针/螺旋规则,但我不确定......

2 个答案:

答案 0 :(得分:7)

int * a[][10];

是C ++中的非法声明,因为存储大小未知。您需要使用指向int的10个指针的数组对其进行初始化,如下所示:

int* a[][10] = {{nullptr}}; // initialize with one array, the latter consisting of null pointers

或者,甚至更简单,

int* a[][10] = {{}};

初始化后,它变成了一个指向int的指针数组10的数组。

答案 1 :(得分:0)

awk -v OFS="\t" -v n=3 -v v1="$v1" -v v2="$v2" -v v3="$v3" 'BEGIN { # print n-1 empty lines for (i=1; i<n; i++) print "" # print v1, v2, v3 print v1, v2, v3 }' ,将被读取为指向未定义行的2D数组(默认情况下,我猜它为0)和10列,其中数据在内存布局中逐行读出。 但这个声明只能在C中使用。

如果我们声明一个二维数组即int abc [10] [10]那么我们就可以制作一个&#39; a&#39;指出这个阵列&#39; abc&#39;。