c ++数组/指针声明问题

时间:2013-06-14 18:23:33

标签: c++ declaration

我正在尝试解决c ++中以下三个声明之间的区别。我附上了我的猜测:

  • const float *x[4] - 常量浮点数数组的4元素指针数组
  • const float (*x)[4] - 我在这里感到困惑......它和上面一样吗?
  • const float *(*x)[4] - 与上面相同,但“在常量浮点数组的数组上”

任何帮助/解释都将不胜感激。

3 个答案:

答案 0 :(得分:4)

使用cdecl了解声明,

  1. const float *x[4] - 将 x声明为指针的数组4 指向const float
  2. const float (*x)[4] - 将 x指定为指针指向const float的数组4
  3. const float *(*x)[4] - 将 x指定为指针指向指向const float的数组4
  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