这里是引用
·基本类型
·char 字符型
·short 短整型
·int 整型
·long int 长整型
·long long 超长整型
·float 单精度浮点型
·double 双精度浮点型
·long double 双精度浮点型
·bool 布尔类型
·void 无类型
·void类型的大小取决于编译器,比如在Dev C++中等于1,在Visual C++中等于0,不同的编译器的处理方式是不同的。
·long double的大小在不同的编译器里有着不同的大小,可能是8、12、16
这里是引用
long long不是所有编译器都使用的,说白了它就是一种能够表示范围更大的整数的类型
一般来说,整数常量是被当作 int 类型来存储的。如果我们使用的整数常量超出了 int 的表示范围,C 语言规定编译器自动使用 unsigned int 来处理这个常量。如果 unsigned 也不足以表示这个常量的话,编译器就会用 long。如果还表示不了的话,那就依次用 unsigned long,long long,unsigned long long。如果 unsigned long long 也表示不了,那么编译器就没辙了。注意:long long 和 unsigned long long 是 C99 特有的。
·构造类型
·数组 [ ]
int a[5]={1,2,3,4,5};
表示,数组类型为int型,数组名为a,数组有五个元素,五个元素从0下标开始分别是1,2,3,4,5。像这样的数组称为一维数组,除了一维数组,还有二维数组,多维数组。
数组类型是非常重要的聚合类型,和指针关系密切。
数组最重要的功能是查表。以后慢慢就体会到了。
·结构 struct与联合 union
数组用于聚合相同类型,结构类型struct用于聚合不同类型,又称作记录,结构体。
struct student
{
int ID;
char name[20];
int age;
char sex[6];
};
类型struct student中包含两种不同类型的四个成员ID,name,age,sex。
联合类型(union)的形式与struct类似,区别在于成员重叠,只有存储的最后一个成员有效。
·枚举 enum
枚举类型是对整数序列的一种映射,将整数用易于理解的单词替换,本质上相当于一些整数排列。枚举类型可以提高程序的可读性。
枚举类型的定义形式为:
enum 类型名{标识符序列};
例如:
enum week{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
其中week是枚举类型名,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday是枚举值,又称枚举常量,分别对应0,1,2,3,4,5,6。
- 枚举常量定义后不能修改。
- 枚举值不能是普通的整型值。例如下面的定义是错误的。
enum week{1,2,3,4,5,6,7};
- 枚举常量只能是标识符。
·指针类型 *
指针类型是记录对象在内存中的地址或位置的类型。这里的对象是指变量,函数等实体。
指针类型与其指向的对象有关,其算法也因其指向的对象的不同而不同。
(指针特别🐂牛!好好看,好好学。)
·空类型 void
void类型又称“无类型”,“空类型”。
void类型通常用于对不确定的参数类型,返回值,指针类型进行声明。
(这话我也没搞懂,以后慢慢理解)
·类型别名
除了内置的数据类型之外,C语言还允许用户自定义类型说明符,也就是可以自己给类型取个别名。类型别名所用的类型定义符是typedef。
定义的形式为:
typedef 类型名 别名;
别名必须是标识符。
typedef int I_nt_s;
typedef char* CHAR;
也可以定义数组类型
定义的形式为:
typedef 类型名 别名[数组长度];
typedef int ARR[5];//ARR把数组的元素类型和元素个数包含进去了
ARR a, b; //这两行是等价的
int ar[5], br[5]; //这两行是等价的