因此,数组是指向其第一个元素的指针。
float color[4]={rColor, gColor, bColor, alpha};
因此,只是简单color
地指向&color[0]
;
现在假设我有一个结构:
struct Colors{
float color[4];
};
现在我发现我可以很好地做到这一点:
Colors myColor={{*color}};
我也可以这样做:
Colors myColor={{color[0]}};
我只指向一个元素,但结构需要 4,所以它一直在寻找这个元素。
首先,我想检查一下这样做是否可行,合法且可以。显然,如果您要传递一个大数组,这在语法和键入方面非常方便。
其次,我想验证为什么这样做有效的原因。因为color
only 是一个指针,所以 the*
是一个间接操作符,它检索指向的内存,也就是数组。所以基本上我们通过间接调用它的指针来获得整个数组。正确的?