因此,数组是指向其第一个元素的指针。
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/