下面C语言程序怎么理解?P是指向结构体的指针,却赋值了一个3行N列的数组的首地址什么意思呢? }

2025-04-05 09:04:59
推荐回答(1个)
回答1:

Complex为共用体 两个成员, x为int 占4个字节。 dat为结构体,占8个字节(dat.x和dat.y)

所以 Complex占8个字节。 前四个字节,x和dat.x共用, 后四个自己为y 。

赋值 p=(Complex*)&a[j][0] 这里应该加一个强制转换。
赋值后, 访问&a[j][0]上的数据 就是按照Complex格式进行访问

于是 p->x=p->data.x=a[j][0] p->data.y=a[j][1]