如下: 又是考查内存对齐和指针理解, 简单东西。

#include <iostream>
using namespace std;

#pragma pack(4)

struct X
{
	int a;
	char b[3];
	short c;
	char d[3];
	int e;
	char f;
	char g;
};

int main() 
{
    X x;
    X *p = &x;
    
	cout << sizeof(X) << endl;  // 24
	
	cout << (char*)(p + 10) - (char*)p << endl;  // 240
	
	cout << (char*)((int *)p + 10) - (char*)p << endl;  // 40
	
	cout << (char*)((char *)p + 10) - (char*)p << endl;  // 10
	
	return 0;
}
       不多说。




本文转载:CSDN博客