What is the difference between the two array assignments, one inside a struct and one outside a struct?
struct A
{
   char s[4];
};
int main(int argc, char *argv[])
{
   char s[4];
   char d[4];
   d = s; // 'invalid array assignment'
   A a, b;
   b = a; // compiles without problems
   return 0;
}
The default operator = is supposed to invoke member-by-member assignment operators. If so, then there should exist an array assignment operator, but the compiler does not want to invoke it explicitly. Why?
 
     
     
    