一.数据类型的基本归类
整型家族:
 char
 (字符是以ASCII码来存储,ASCII码值是整数,则char也是整型)
 
 unsigned char 
 
 signed char 
 
 
 short 
 
 unsigned short
  [
 int
 ]
 (int可省略)
 
 signed short
  [
 int
 ] 
 
 
 int 
 
 unsigned int 
 
 signed int 
 
 
 long 
 
 unsigned long
  [
 int
 ] 
 
 signed long
  [
 int
 ]
 
 
 不加前缀的     int     long[int]     short[int]  默认是signed类型,只有  char  是unsigned还是signed取决于编译器的实现。常见的编译器下是:char 就是 signed char 
 
 
浮点数家族:
 float 
 
 
 double 
 
 
构造类型(自定义类型):
 > 
 数组类型 
 
 > 
 结构体类型 
 struct 
 
 > 
 枚举类型 
 enum 
 
 > 
 联合类型 
 union 
 
 
指针类型:
 int *
 pi
 ; 
 
 char *
 pc
 ; 
 
 float* 
 pf
 ; 
 
 void* 
 pv
 ;
 
 
空类型:
 void 表示空类型(无类型) 
 
 通常应用于函数的返回类型、函数的参数、指针类型。
 
二.整型在内存中的存储
原码、反码、补码
原码:直接将二进制按照正负数的形式翻译成二进制就可以。
反码:将原码的符号位不变,其他位依次按位取反就可以得到了。
补码: 反码+1就得到补码。
对于整型来说:数据存放在内存中的是补码
#include <stdio.h>
int main()
{
	//负数补码按位取反,再加1,就变回原码
	int i = -15;
	//10000000 00000000 00000000 00001111原码
	//11111111 11111111 11111111 11110000反码
	//11111111 11111111 11111111 11110001补码
	
	int a = 15;
	//00000000 00000000 00000000 00001111原码
	//00000000 00000000 00000000 00001111反码
	//00000000 00000000 00000000 00001111补码
	return 0;
} 
 ****正数的原码,反码,补码都相同
将负数的补码转化为原码,可以将其补码按位取反,再加1,就可以变为原码。
大小端存储
 
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址
  中;(高位低存)
 
 
  
 
   小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 
  
 
  
   址中。(高位高存)
  
 
   
  
  用一道题来加深理解:
请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。
#include <stdio.h>
int check()
{
	int j = 1;
	//0x 00 00 00 01  如果1存在低位,则为小端
	//char* p = (char*)&j;
	//if (1 == *p)
	//{
	//	return 1;
	//}
	//else
	//	return 0;
	//下面是简版
	// p = (char*)&j ->  *p = *(char*)&j
	return *(char*)&j;//char*指针访问权限为第一位地址,第一位地址为低位,查看低位在内存中为合数来判断大小端存储
}
int main()
{
	int i = check();//i返回1,输出小端  返回其他是大端
	if (1 == i)
	{
		printf("小端\n");
	}
	else
		printf("大端\n");
	return 0;
}