首页 > 解决方案 > `float* const* ` 是什么意思?

问题描述

标签: c++pointers

解决方案


是什么float* const* 意思?

float是一种基本的浮点类型。T*是指向 的指针Tconst是一个限定符,适用于它左侧的任何内容(除非它是最左边的标记,在这种情况下它适用于右侧)。由于限定符和指针都适用于左,因此很容易从右到左阅读(在更复杂的情况下,这种简化的经验法则是错误的):

float * const *  // original
* const * float  // reversed
          *          | const *          |           float // added spaces and separators
non-const pointer to | const pointer to | non-const float // translated to english

数组是更复杂情况的一个示例,其中从右到左不起作用。对于适用于所有复合类型的更复杂的规则,请参阅“顺时针规则”或“螺旋规则”。

所以不可能得到一个 float* const * 到矢量数据,对吧?

如果你有这样的向量,你可以:

std::vector<float*> vector_of_pointers;
float* const* ptr = vector_of_pointers.data();

您可以使该向量的元素指向您的浮点向量。

vector_of_pointers.push_back(v.data());

推荐阅读