c++ - 指向一个数组以获取其所有内容

标签 c++ c

因此,数组是指向其第一个元素的指针。

float color[4]={rColor, gColor, bColor, alpha};

因此,简单的color指向&color[0]

现在假设我有一个这样的结构:

struct Colors{
float color[4];
};

现在我发现我可以很好地做到这一点:

Colors myColor={{*color}};

我也可以这样做:

Colors myColor={{color[0]}};

我只指向一个元素,但该结构需要 4 个,所以它一直在查看这个元素。

首先,我想检查是否可以这样做、合法且没问题。显然,如果您要传递一个大数组,这在语法和输入方面都非常方便。

其次,我想验证为什么这行得通的推理。由于单独的 color 是一个指针,因此 * 是一个间接运算符,用于检索指向的内存,即数组。所以基本上我们通过间接调用它的指针来获得整个数组。正确吗?

最佳答案

结构、 union 和数组的初始化器具有特殊的属性,即从中省略的元素用 0 初始化。

要将整个结构初始化为您的Colors,您还可以使用相同类型的任何其他对象。

关于c++ - 指向一个数组以获取其所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14255621/

相关文章:

c++ - STL中如何设置自定义默认比较函数

c++ - 在 OpenCV (C++) 中检测球/圆

c - 使用 C 从 XML 文件读取数据

c - 通过引用传递时动态调整结构数组大小

c - 是否可以创建变量名称数组?

c++ - 从基类识别派生类

c++ - 指向 vector 的指针的指针

c++ - 在 C++ 中,如何重用已完成执行的标准线程?

c++ - 如何将 unique_ptr 的 move 构造函数和运算符实现为类的私有(private)成员

C 递归编程二叉树插入(不是二叉搜索树)