c语言

typedef struct _S
{
    int i;
    int* p;
} S;
main()
{
    S s; //结构体占用8个字节,前四个字节是i,后四个字节是p
    int*p = &s.i; //p指向s的起始地址
    p[0] = 4;    //通过数组的访问方式把s的前四个字节赋值为4,后四个字节为3
    p[1] = 3;
    s.p = p;    //s.p指向s的起始地址
    s.p[1] = 1; //后四个字节也就是s.p自己被赋值为1
    s.p[0] = 2; //王地址0x00000001的地方写2 oops!!!!!!!!!
}

原文地址:https://www.cnblogs.com/wang-le/p/3278983.html