声明指向2D枚举数组的指针

时间:2014-06-06 21:19:52

标签: c++ arrays pointers enums multidimensional-array

考虑MNWE:

enum T {VALUE};

int main() {
    T T_arr[8][8];
    T** T_arr_ptr = T_arr;
}

现在这不编译,说

  

错误无法在初始化中将T(*)[8]转换为T**

不使用auto,这个指针的正确类型是什么?

1 个答案:

答案 0 :(得分:1)

2D数组名称衰减到指向数组第一行的指针,因此它是指向数组的指针。此处T_arr在衰变后属于T(*)[8]类型 改变

T** T_arr_ptr = T_arr;  

T (*T_arr_ptr)[8] = T_arr;