1.整型
分有符号(signed) 无符号(unsigned)
(1) 短整型 short int(内存中占用2字节)
short int(signed short int)取值范围: -32,768 ~ 32,767
unsigned short int 取值范围: 0 ~ 65,535
(2) 整型 int(内存中占用4字节)
int(signed int)取值范围: -2,147,483,648 ~ 2,147,483,647
unsigned int 取值范围: 0 ~ 4,294,967,295
(3) 长整型
long int >= int(4字节)
long int(signed long int)取值范围: -2,147,483,648 ~ 2,147,483,647
unsigned long int 取值范围: 0 ~ 4,294,967,295
long long int(内存中占用8字节)
long long int (signed long long int) 取值范围:
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
unsigned long long int 取值范围:
0 ~ 18,446,744,073,709,551,615
注意:
int内存占用大小 int最少16位(2字节),long不能比int短,short不能比int长,具体位长由编译器开发商根据各种情况自己决定
2. 浮点型
分为单精度 双精度
(1) 单精度 float(占用4字节)
其中最高位为符号位,紧接着8位为指数位,剩下的23位为尾数位。
取值范围: -3.4x10^38 ~ 3.4x10^38
(2) 双精度 double(占用8字节)
其中最高位为符号位,紧接着11位为指数位,剩下的52位为尾数位。
取值范围: -1.7x10^308 ~ 1.7x10^308
3.字符型
单引号为字符 双引号为字符串
char (占用1字节)
char(signed) 取值范围: -128 ~ 127
unsigned char 取值范围: 0 ~ 255
4.构造类型
4.1 数组
Array 一组元素的集合
由 存储元素 和 数组索引组合而成
存储元素可以为字符 整型 浮点…
数组索引是由0 ~ n-1
int arr[10]={0}; //可以存放十个整型的数组 其数组下标为0-9
4.2 结构体
struct结构体是一种自定义的复合数据类型 其总字节大小要考虑内存对齐
struct S
{
int age;
char name[5];
};
int main()
{
struct S stu = { 21,"小明"};
printf("%d %s", stu.age, stu.name);
return 0;
}
4.3 联合体
union联合体几个成员变量共用一块内存,会覆盖 同时只能用其中一个成员 存在内存对齐
union Un
{
int i;
char c;
}un;
int main()
{
un.i = 1;
printf("%d",un.c);//输出 1
return 0;
}
4.4 枚举
enum枚举常量
typedef enum en
{
A = 1,
B = 5,
}Number;
int main()
{
Number number;
number=B;
printf("%d",number);//5
return 0;
}
5.指针类型
指针就是地址 ,当两个指针指向同一个空间时 指针减指针可以得到它们之间的元素的字节长度,指针内容非常多 这里不再过多赘述
例如:
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p1 = &arr[0];//
int* p2 = &arr[9];
printf("%d", p2 - p1);
return 0;
}
6.空类型
void 可以表示无类型
也用于函数无返回值 或 不接受参数