c语言结构体数组赋值问题 如果用同一个结构体定义了2个不同的数组1和数组2。可以 数组1=数组2;

c语言结构体数组赋值问题
如果用同一个结构体定义了2个不同的数组1和数组2。可以 数组1=数组2;如果用同一个结构体定义了2个不同的数组1和数组2。可以 数组1=数组2;这样整体赋值吗

不可以,要是指针的赋值就可以,例如

typedef struct a
{
    int y;
};
int main()
{
    struct a aa[3]={{2},{4},{6}};
    struct a *bb;
    bb=aa;
    printf("%d",(bb[0]).y);
    return 0;
}

追问

如果我bb的值,会影响aa的值吗。aa和bb是共用同一段地址吗

如果我改变bb的值,会影响aa的值吗。aa和bb是共用同一段地址吗

追答

要是如我上述所写那样,那么aabb同属一个地址,任何一个改变都全部改变

追问

可以不共用吗,就是复制一份。互不影响

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-07-05
我记得这样的数组是不可以的,这样只是把数组2的地址给数组1,两个数组指向同一地址了。
相似回答