C语言结构体赋值相关

看UNPv1的时候,在第四章看到ipv6结构体的赋值,里面说到C语言的结构体变量无法直接赋值为该结构的常值结构,但是可以用变量赋值,并且如果是初始化的时候也是可以的,废话少说,还是上代码说的明白:

typedef struct A { 
        int a;
        char b;
} A;

int main()
{
    
        A b = {2, 'b'}; //OK
        A a = {1, 'a'}; //OK
        /* a = {1, 'b'} //非法,结构体赋值不能用常量结构赋值,不过可以这样: */
        a = b; /* 合法,b是同类型的结构体变量 */

        return 0;
}