用内存表示查询?

时间:2014-02-06 07:27:17

标签: c memory structure output

int main()
{
    struct books
    {
        char name;
        float price;
    }b1;
    printf("%u   %u",&b1.name,&b1.price);
}

当我运行上面的代码时,我得到以下输出: -

2686728    2686732

由于sizeof(char)为1,为什么上述两个地址的差异为4?

1 个答案:

答案 0 :(得分:1)

填充。编译器在nameprice字段之间插入3个字节的填充,因此访问price不会遇到对齐问题。