You cannot assign to arrays so basically you cannot do what you propose but in C99 you can do this:
CGFloat *components;
components = (CGFloat [8]) {
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.15
};
the ( ){ }
operator is called the compound literal operator. It is a C99 feature.
Note that in this example components
is declared as a pointer and not as an array.