int a[3][4] = {
{1, 2, 3, 4},
{1, 2, 3, 4},
{1, 2, 3, 4}
};
int **ptr = a;
运行结果及报错内容
编译时显示:
cannot convert 'int ()[4]' to 'int*' in initialization
因为之前概念中提到,数组名就是const指针,二维数组名应该就是指针的指针,不知道为什么这里不能用数组名来初始化这个指针。
请各位帮忙解答下疑惑
int a[3][4] = {
{1, 2, 3, 4},
{1, 2, 3, 4},
{1, 2, 3, 4}
};
int **ptr = a;
编译时显示:
cannot convert 'int ()[4]' to 'int*' in initialization
因为之前概念中提到,数组名就是const指针,二维数组名应该就是指针的指针,不知道为什么这里不能用数组名来初始化这个指针。
请各位帮忙解答下疑惑
数组好像只能退化一层
int a[3][4] = {{1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}};
using intarr = int[4];
intarr *ptrs = a;
int b[3] = {0, 0, 0};
int *ptrb = b;