“复制结构,混淆数组”是什么意思?

我在读克莱门斯,本。 21世纪C:来自新学校的C技巧,我被句子“复制结构,混淆数组”所制止,但我并没有很好地理解,这个例子对我来说也不清楚。有人可以解释吗?

示例代码

    #include <assert.h>

typedef struct{
    int a, b;
    double c, d;
    int *efg;
} demo_s;
int main(){
    demo_s d1 = {.b=1, .c=2, .d=3, .efg=(int[]){4,5,6}};
    demo_s d2 = d1;

    d1.b=14;            
    d1.c=41;
    d1.efg[0]=7;

    assert(d2.a==0);    
    assert(d2.b==1);
    assert(d2.c==2);
    assert(d2.d==3);
    assert(d2.efg[0]==7);
}

本·克莱门斯21世纪C:新学校的C技巧。 O'Reilly Media。 Kindle版。

#include <assert.h>

int main(){
    int abc[] = {0, 1, 2};
    int *copy = abc;

    copy[0] = 3;
assert(abc[0]==3); 
}

本·克莱门斯21世纪C:新学校的C技巧。 O'Reilly Media。 Kindle版。