0

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

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

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

4

3 回答 3

4

用于cdecl了解声明,

  1. const float *x[4]- 将 x 声明为指向const float的指针的数组 4
  2. const float (*x)[4]-将x 声明为指向const float 数组 4 的指针
  3. const float *(*x)[4]-将x 声明为指向const float 指针的数组 4 的指针

资料来源:cdecl.org

于 2013-06-14T18:28:56.520 回答
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 元素数组的指针。

于 2013-06-14T18:28:23.403 回答
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 
于 2013-06-14T18:32:12.623 回答