1.测试大小端的程序
#include<stdio.h>
union ss
{short int i;
char c[2];
};
void main()
{union ss x;
x.c[0]=10;
x.c[1]=1;
printf("%d",x.i);
}
由于定义的共用体ss中的变量i和c共同占有2个字节的地址,而编译器VC是小端模式,
故字符数组c和短整形i在内存中的分布情况是这样的: 地址1 地址0
c[]: 0000 0001(c[1]) 0000 1010(c[0])
i: 0000 0001 0000 1010
因此变量i的值为:1*256^1 + 10*256^0 = 266!!
2.测试数据类型占用的字节数
#include<stdio.h>
int main()
{
int i[10];
char* src = "hello world!";
char srcc[20] = "hello world!";
//data type
printf("size of char:%d bytes!\n",sizeof(char));
printf("size of int:%d bytes!\n",sizeof(int));
//pointer
printf("size of void*:%d bytes!\n",sizeof(void*));
printf("size of int*:%d bytes!\n",sizeof(int*));
printf("size of char*:%d bytes!\n",sizeof(char*));
//data
printf("size of int[]:%d bytes!\n",sizeof(i));
printf("size of src:%d bytes!\n",sizeof(src));
printf("size of srcc:%d bytes!\n",sizeof(srcc));
return 0;
}
运行结果:
