/*--------------------------------------------------
在你的系统上,对于指针类型 char*、int*、void* 有什么限制吗?
例如, int* 可以具有奇数地址吗? 提示:对齐问题。
--------------------------------------------------*/
#include <iostream>
using std::cout;
using std::endl;
#pragma pack(1)
int main()
{
char ch1 = 'a', ch2 = 'A', ch3 = '@';
int in1 = 123, in2 = -456;
short in3 = 789;
cout << "Type Size Address Hexadecimal" << endl;
cout << ch1 << " " << sizeof(ch1)
<< " " << (void*)&ch1
<< " " << (void*)ch1 << endl
<< ch2 << " " << sizeof(ch2)
<< " " << (void*)&ch2
<< " " << (void*)ch2 << endl
<< ch3 << " " << sizeof(ch3)
<< " " << (void*)&ch3
<< " " << (void*)ch3 << endl
<< in1 << " " << sizeof(in1)
<< " " << &in1
<< " " << (void*)in1 << endl
<< in2 << " " << sizeof(in2)
<< " " << &in2
<< " " << (void*)in2 << endl
<< in3 << " " << sizeof(in3)
<< " " << &in3
<< " " << (void*)in3 << endl << endl;
cout << ch1 << " "
<< (void*)ch1 // 输出ch1字符存储状态
<< " &ch1 = "
<< &ch1
<< " " << (void*)&ch1 // 输出ch1字符所在地址
<< endl;
return 0;
}