1.简单变量
选择需要的类型(char,int,float,double等);使用有效字符给变量取名;按以此格式声明:类型说明符 变量名;
int a; //声明一个整形变量a unsigned short a; //类型符由一个或多个关键字组成 int a, b, c; //可同时声明多整个变量,用逗号隔开 int a = 1,b = 2; //声明的同时可以初始化变量 char a = 'a'; //初始化字符常量 float a = 7.77e7 //初始化浮点型常量
2.指针
int *ptr; //定义一个指向整型的指针 const int *ptr; int const *ptr; //定义一个指向常量的指针 int *const ptr; //定义一个指向整型的指针常量 const int * const ptr; //定义一个指向常量的指针常量
int **a; //定义一个指向指针的指针,指向的指针指向一个整形数 int (*ptr)[5]; //定义一个指向数组的指针,该数组有5个整形数 int *(*a)[10]; //定义一个指向数组的指针,该数组有5个整形指针 int (*ptr) (); //定义一个指向函数的指针,该函数无形参,返回值为int型 struct a * ptr; //声明一个结构体指针,可以指向任意a类型的结构
3.数组
char a[12]; //内含12个char类型元素的数组 float a[8]; //内含8个float类型元素的数组 int a[7] = {1,3,5,8,5}; //声明并初始化数组,该数组有7个int类型元素,编译器将剩余2个元素初始化为0 int a[ ] = {2,3,5,7,9,5}; //可省略方框内数字,编译器自动匹配数组大小和初始化列表中的项数 int *a[5]; // 内含5个指针的数组 ,指针指向int类型
4.函数
void aaaa(int num, char ch) //函数头格式 返回值类型 函数名 (形参列表) int *a(); //指针函数 无形参数 返回int类型的指针
5.结构
声明和定义
struct team { //关键字 struct 后跟一个可选标记 team (若非多次使用 可不带标记) char season[]; //每个结构体成员自己的声明来描述 int grade; float kda; }; //右花括号的分号为声明所必须,表示结构定义结束;右花括号可跟变更名,同时完成声明结构和定义结构变量的过程
struct team SN; //把 SN 声明为一个使用 team 结构布局的结构变量 struct team TES, DWG; //声明两个使用 team 结构布局的结构变量,TES和DWG
struct team JDG = { //初始化结构变量与初始化数组类似 "S10", 8, 15.6 };
结构嵌套
struct teams { //第一个结构 char first[LEN]; char four[LEN]; }; struct lol { //第二个结构 char teams World_Championship; //嵌套结构 char season[LEN]; }; struct lol lpl = { //初始化结构变量 {"TES","LGD"}, "S10" };
6.联合
创建联合与创建结构相同,也需要联合模板和联合变量。
union hold { //带标记的联合模板 int digdit; double bingfl; char letter; }; union hold fit; //hold类型的联合变量 union hold save[10]; //内含10个联合变量的数组 union hold * //指向hold类型的指针
7.枚举
enum常量为int类型
enum spectrum{red,orange,yellow,blue}; //声明以spectrum为标识符的枚举类型,括号的标识符枚举了spectrum变量可能的值 enum spectrum color; //声明一个类型名为enum spectrum的变量 color
8.typedef
typedef没有创建新类型,只是为已存在的类型起一个简单的别名
typedef unsigned char uint8; //为现有类型创建别名
typedef char Line[81]; //掩饰数组 Line text,line; 等同于 char line[81]; char text[81];
typedef char* pstr; //修饰指针 int mystrcmp(const pstr p1,const pstr p3); // 形参为两个指向char的常量指针
typedef struct Student //typedef 修饰结构体类型 { int a; }Stu; Stu stu1; //声明结构体类型 Stu==struct Student
typedef百科:https://baike.baidu.com/item/typedef
9.宏定义
#define预处理器指令 ,完成字符串的简单替换
#define TWO 2 //由 #define指令+选定的缩写(宏)+ 替换体
#define LOL “League Of Legends” // 长度仅限一行 反斜杠 可以把定义延续至下一行
#define MAX(X,Y) ((x)>(Y)?(X):(Y)) //简单函数 可改为带参数宏 定义中包含表达式,必须使用括号
如何判断定义的类型: https://blog.csdn.net/qq_41727218/article/details/79733724