#include <stdio.h>
#include <stdlib.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
struct Date { char a; int b; double c; char d; };
struct Date Date1 = { 'c', 1, 0.1, 'c' };
printf("*******输出地址*******\n");
printf("Date1 = %d\n", Date1);
printf("&(Date1.a) = %d\n", &(Date1.a) ); //
printf("&(Date1.b) = %d\n", &(Date1.b) ); //
printf("&(Date1.c) = %d\n", &(Date1.c)); //
printf("&(Date1.d) = %d\n", &(Date1.d)); //
printf("&Date1+1 = %d\n", &Date1+1 ); //
printf("(int*)&Date1 + 1 = %d\n", (int*)&Date1 + 1); //
getchar();
return 0;
}
![](https://img-blog.csdn.net/20151001145158872?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在32位操作系统下Date占用24字节,因为第一个是char肯定得对齐1个字节的,
int肯定对齐在4的位置,因为大小为4,c大小为8,d同理要补成8的整数,因为最大的成员大小是8