Yes, and there are several cases where the difference is noticeable, particularly when it comes to structures and arrays.
You can initialize an array or struct with constant values, e.g. :
Code:
struct blah
{
int x;
char *s;
};
struct blah array[3] = { { 1, "One"}, {2, "Two"}, { 3, "Three" } };
// However, this doesn't work:
struct blah array[3];
array = { { 1, "One"}, {2, "Two"}, { 3, "Three" } };
// Also won't work:
struct blah array[3];
struct blah arr2[3];
...
array = arr2;
// This works, however
array[1] = arr2[1];
That covers both structure and array initialization. Essentially, the compiler is able to give a variable a value when it's defined, but not later - you can only assign one element at a time from an array for example, and you can not assign constant values directly to a struct as a list of element values, each element on it's own will have to be set.
--
Mats