我正在尝试解决c ++中以下三个声明之间的区别。我附上了我的猜测:
const float *x[4]
- 常量浮点数数组的4元素指针数组const float (*x)[4]
- 我在这里感到困惑......它和上面一样吗?const float *(*x)[4]
- 与上面相同,但“在常量浮点数组的数组上”任何帮助/解释都将不胜感激。
答案 0 :(得分:4)
使用cdecl
了解声明,
const float *x[4]
- 将 x声明为指针的数组4 指向const float const float (*x)[4]
- 将 x指定为指针指向const float的数组4 const float *(*x)[4]
- 将 x指定为指针指向指向const float的数组4 来源:cdecl.org
答案 1 :(得分:2)
const float *x[4] - 4-element array of pointers on arrays of constant floats
指向常量浮点数的4元素指针数组。
const float (*x)[4] - I'm confused here... is it the same as above?
指向常量浮点数的4元素数组。
const float *(*x)[4] - the same as above but "on arrays of arrays of constant floats"
指向常量浮点数的4元素指针数组的指针。
答案 2 :(得分:1)
const float *x[4] - An array of pointers to constant floats
const float (*x)[4] - A pointer to an constant float array with 4 elements
const float *(*x)[4] - A pointer to an array of pointers to constant float