常见面试题:
用union的方法:
介绍下union:
union (共用声明和共用一变量定义)
“联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,以达到节省空间的目的(还有一个节省空间的类型:位域)。 这是一个非常特殊的地方,也是联合的特征。另外,同struct一样,联合默认访问权限也是公有的,并且,也具有成员函数。
/***下面就是采用的 这些数据共享同一段内存的特性实现的***/
10 #include<cstdio>
11 int main()
12 {
13 union
14 {
15 int a;
16 char c[4];
17 };
18 a = 0x12345678;
19
20 // c[0] = ? 根据c[0]的输出判断电脑是大端存储还是小端存储
21 printf("c[0] = %x\n",c[0]);//78 56
22
23 return 0;
24 }
结果分析:
如果c[0] 为12 则说名是大端模式。
如果c[0] 为78 则说明是小端模式。