关于struct的疑问?

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:34:19
自然对界的情况下:
struct
{
char a;
char b;
int x;
}str_1;
struct
{
char a;
int x;
char b;
}str_2;
问:
为什么sizeof(str_1)和sizeof(str_2)的结果为什么不一样?

PS:
恳请详细回答,谢谢!
More More More ...

#include <iostream>

struct
{
char a;
char b;
int x;
}str_1,*p1;
struct
{
char a;
int x;
char b;
}str_2,*p2;

int main()
{
p1 = &str_1;
p2 = &str_2;
std::cout<<"sizeof(str_1)="<<sizeof(str_1)<<std::endl;
std::cout<<"sizeof(str_2)="<<sizeof(str_2)<<std::endl;
std::cout<<"(long)&p1->a="<<(long)&p1->a<<std::endl;
std::cout<<"(long)&p1->b="<<(long)&p1->b<<std::endl;
std::cout<<"(long)&p1->x="<<(long)&p1->x<<std::endl;
std::cout<<"(long)&p2->a="<<(long)&p2->a<<std::endl;
std::cout<<"(long)&p2->x="<<(long)&p2->x<<std::endl;
std::cout<<"(long)&p2->b="<<(long)&p2->b<<std: