韦老师新一期视频第011课_串口第003节中,指针移动问题

如题

struct  person{

char *name;

int  age;

char score;

int  id;

};

在指针的值为结构体person变量的score地址后,对id进行寻址时,教程给出代码为p = p + ((sizeof(char) + 3) & ~3);

为什么要对后3位进行清零操作?

请先 登录 后评论

1 个回答

Mars

首先,& ~3应该是对最后两位进行清零操作。然后,& ~3相当于对3取整,这是因为这个结构体是4字节对齐的,所以前面先+3再对3取整,保证取到的是id的地址。

请先 登录 后评论
  • 1 关注
  • 0 收藏,917 浏览
  • jesse_huang 提出于 2020-10-12 15:37

相似问题