1.数据类型总结
1>基本数据类型
int
long int = long 8byte,占位符:%d
short int = short 2byte,占位符:%d
unsigned int = unsigned4byte 占位符:%2d
signed int= signed 4byte,占位符:%d,%i
float
double8byte,占位符:%f
float 4byte,占位符:%f
char 1byte,占位符:%c
char类型在内存中存放的是其ASCII值 ’A‘ = 65
2>构造类型
数组 :由同种数据类组成
格式:数据类型 数组名[元素个数]
结构体:由不同类型数据组成
格式:定义类型,再利用类型定义变量
struct Student
{
char *name;
int age;
};
struct Student stu = {“Jack”,“18”};
指针类型
变量的定义 int *p;
间接操作变量的值
int a = 10;
p = &a;
*p = 20;
枚举类型
定义 enum Sex{};
enum Sex s = {};
使用场合:当一个变量只允许由几个固定值组成
2.预处理指令
代码编译成0和1前的指令,所有预处理指令都#为开头
预处理指令分为3种 宏定义 条件编译 文件包含
预处理的位置是随便写都可以
预处理指令作用域:从编写指令的那一行开始,一直到文i
宏名一般用大写或k开头,变量名一般用小写
双引号“”里面的count只会输出count,不输出其他数值
宏定义
不带参数的宏
带参数的宏 :带参数的宏比函数效率高
宏只会替换数值(文本对换),不计算。参数中每一个数括上括号,结果值也要括上括号
如:#define Su((v1,v2),(v1+v2))
取消宏定义
#def Sum;
条件编译
满足某条件才参与编译,不满足不编译。#end if 不可缺 写完#if 要立刻写#end if
前面是宏
#if 条件1
语句
#else if 条件2
语句
#else
语句
#end if
文件包含
<>表示系统自带文件,“”表示定义文件
不允许循环包含,比如a.h包含b.h,b.h包含a.h
为了防止同样声明出现多次,在.h文件中加上条件编译,其名字取决于文件名
#if def LISHI_H
#define LISHI_H
int sum(int a,int b)
#end if
3.关键字 typedef
作用:给已经存在类型起一个行的名称
使用场合:基本数据类型,指针,结构体,枚举,指向函数的指针
*指向函数的指针与普通不同: typedef int(*Mysum)(int,int); 文件名写中间
使用注意 :#define :是文本的对换typedef:是定义新的类型
相同点:更改文件名不同点:定义类型
4.staic&extern对变量的作用
定义一个内部变量 static(int b);只在改文件中使用
声明一个外部变量 extern int a;==int a;里面出现的int a都是同一个,而且只能写在函数外面
static对局部变量的影响:延长局部变量的生命周期,程序结束的时候,局部变量就会被销毁
并没有改变局部变量的作用域
所有函数共享一个变量(性能优化)
使用场合:同一个变量使用多次,经常被使用,而且值不改,就用static
5.递归
定义:自己调用自己,函数每次调用新的函数,递归i找规律
使用注意:不能少if
递归成立必须有两个条件:函数自己调用自己
必须有一个明确的返回值