struct AC
{
int a[10];
int c;
};
struct ABC
{
struct AC ac[10];
int B[10];
};
struct ABC L;
X= L.ac[3].a;
Y =(&L.ac[3]);
通过(*)(X++)可以取到ac[3]的a[0]到c的值,但是在取c的值时编译器就会报超界的警告看着不舒服
通过(*)(Y++)就不是取ac[3]的a[0]到c的值,好像是指向了ac[4],不太清楚,
有什么不用AC中元素的地址(报警告,看着太别扭了),取结构体AC的首地址的方法吗?
ac是结构体AC的数组。那么每个ac元素都是结构体AC的变量,你要哪个变量的首地址呢?
取首地址可以是 Y = L.ac + i; i表示你要去的ac数组中第i个ac变量
L.ac就是结构体AC的首地址啊。
&L.ac[3]是结构体数组第4个元素的地址。
我想通过增加Y的值来取到L.ac[3].a[0]---L.ac[3].c的值
解决方法找到了:Y=(int *)(&L.ac[3])