因此,数组是指向其第一个元素的指针。
float color[4]={rColor, gColor, bColor, alpha};
因此,只需简单地color
指着&color[0]
;
现在假设我有一个结构:
struct Colors{
float color[4];
};
现在我发现我可以做得很好:
Colors myColor={{*color}};
我也可以这样做:
Colors myColor={{color[0]}};
我只指向一个元素,但该结构需要 4 个元素,因此它会继续查看该元素。
首先,我想检查一下这样做是否合理、合法且可行。显然,如果您传递一个大数组,这在语法和输入方面非常方便。
其次,我想验证其原理。自从color
单独是一个指针,*
是一个间接运算符,用于检索指向的内存,即数组。所以本质上我们通过间接调用它的指针来获取整个数组。正确的?
结构体、联合体和数组的初始化器具有特殊的属性,即其中省略的元素被初始化为0
.
将整个结构初始化为您的Colors
您还可以使用相同类型的任何其他对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)