如题
struct person{
char *name;
int age;
char score;
int id;
};
在指针的值为结构体person变量的score地址后,对id进行寻址时,教程给出代码为p = p + ((sizeof(char) + 3) & ~3);
为什么要对后3位进行清零操作?
首先,& ~3应该是对最后两位进行清零操作。然后,& ~3相当于对3取整,这是因为这个结构体是4字节对齐的,所以前面先+3再对3取整,保证取到的是id的地址。