声明和初始化用指针的数组,以阵列
问题描述:
在this question上下文的阵列,我想出了下面的代码声明和初始化用指针的数组,以阵列
typedef char Tuple[2];
Tuple test1[2] = {{1,2},{1,2}};
Tuple test2[3] = {{1,2},{1,2},{1,2}};
Tuple test3[4] = {{1,2},{1,2},{1,2},{1,5}};
Tuple* all[3] = {test1, test2, test3};
存储指向数组的指针(2元组)的阵列在初始化列表。但是,我没有使用typedef
编写等效代码。这个样子的正确语法是什么?
答
char test1[2][2] = {{1, 2}, {1, 2}};
char test2[3][2] = {{1, 2}, {1, 2}, {1, 2}};
char test3[4][2] = {{1, 2}, {1, 2}, {1, 2}, {1, 5}};
char (*all[3])[2] = {test1, test2, test3};
保留typedef。
谢谢。它也可以在不指定数组大小的情况下工作('all []')。这似乎是违反直觉的,[2]'最后会结束。这背后的规则是什么? – fuenfundachtzig