//数据的存储1
//整形家族:char、short、int、long。
//浮点型家族:float、double。
//构造类型:数组类型、结构体类型、枚举类型、联合类型。
//指针类型:int* pi、char*pc、float*pf、void*pv。
//空类型:void表示无返回空类型,通常用于函数的参数。
void test()//无返回,直接打印,
{
printf("hehe\n");
}
int main()
{
test();
return 0;
}
//整型在内存中的存储
int main()
{
int a = 20;
//000000000000000000000000000010100--原码
//000000000000000000000000000010100--反码
//000000000000000000000000000010100--补码
//0x00000014,二进制转换为16进制,0x表示十六进制。
int b = -10;
//100000000000000000000000000001010--原码
//111111111111111111111111111110101--反码
//111111111111111111111111111110110--补码
//0xFFFFFFF6,F等于16,两个符号占一个字节FF FF FF F6
return 0;
}
//有符号数组和无符号数字由原码、反码、补码。
//无符号数和有符号数中的正数的原码、反码、补码都是一样的。
//数据存放的整数是以补码储存的。因为这个时候加法和减法可以统一处理。
//1-1在电脑中会转换成1+(-1),
//补码=反码+1
//大端小端模式:大端储存模式是将低位储存到高地址中,反之高位放在低地址。小端存储模式指高位储存到高地址,同理。前者是顺序储存,后者是倒序储存。
int main()
{
//写一段代码告诉我们这台电脑的储存模式
int a = 1;
//大端:00 00 00 01 小端:01 00 00 00
//取出一个字节看是01还是00,如果是01那么是小端储存,如果是00那么是大端储存。
char* p = (char*)&a;
if (*p == 1)
{
printf("小端\n");
}
else
printf("大端\n");
return 0;
}
int check_sys()
{
int a = 1;
char* p = (char*)&a;
/*if (*p == 1)
return 1;
else
return 0;*/
return *p;
}
int check_sys()
{
int a = 1;
return *(char*)&a;
}
//指针类型的意义:
//因此指针类型决定了指针进行解引用的时候能够访问空间的大小,int* p,*p可以访问4个字节,char *p,*p只能访问一个字节,double* p,*p能够访问8个字节
int main()
{
//写一个函数,返回1:小端。返回2:大端
int ret = check_sys();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}