Arrays can be initialized with what's called an initialization list.

Eg:

```
int my_array[3] = {10, 20, 30};

```

That's very useful when we have a set of initial values for our array.
However this approach doesn't work to assign new values to the array once it's declared.

```
my_array = {10, 20, 30};

error: assigning to an array from an initializer list

```

However sometimes we have processes where we need to initialize our arrays several times to some initial values (eg: inside a loop) so I think it would be very useful to be able to use initializer lists to assign values to variables already declared.

My question is: Is there a reason for having such a feature at declaration time but not once the array is declared?
Why does it work in one case but not in the other case?