Charpter001
C++基本数据类型复习 :
变量
常量
常变量 const
字面值变量
符号常量 #define PI 3.14 符号常量是使用预处理器指令进行定义#define
预处理器:是编译器把C++代码编译为机器指令之前执行的一个过程
C++对数据类型的简单理解:
整形:short int(简写为short):至少是16位,也就是2bit来存储
int: 一般是4bit不同的系统不同,有些是2bit,所以对于无符号数用4bit来存储最大表示范围为0-65535,对于有符号数表示的范围为-32768-32767
long int(简写为long):一般为8bit,至少4bit(不同的系统不一样)
long long
{sizeof(int):4,sizeof(long):8}
最大值和最小值的表示:#include<climits> INT_MAX,INT_MIN,SHORT_MAX,SHORT_MIN
字符型:char
转义字符:\n,\b,\\(在windows中的系统文件中经常使用)
浮点数:float
double
long double
布尔型:bool
复合类型:枚举类型 enum
数组类型
结构体类型(结构体名表示相应的数据类型)
类类型
其他类型:
指针类型
引用类型
空类型
Charpter002
变量的声明类型:
[存储类区分符|类型限定词]<类型区分符>声明符
存储类区分符:extern,static,auto,register,typedef
类型限定符:const,
类型区分符:int, double,float等
extern const int* p;
如果不是指针:前三者的顺序是无关紧要的;
声明的规则和限制:
函数的返回值不能是一个函数,但是可以是一个函数指针 return int(*funcName())()
函数返回值不能是一个数组,但可以是一个数组指针和数组名 return array
变量的赋值和复制初始化:
赋值是变量在已经有值得基础上进行原变量的擦除,新变量的写入
复制初始化是在初始化变量的时候对变量进行赋值 int a=2(复制初始化)
直接初始化 int a(2);
复杂变量的声明:
1:复杂变量的声明,复杂的原因主要是*,[],()这三种运算符的作用,*表示指向变量的指针,()表示返回类型为XXX的函数,[]表示XXX的数组
2:*是前缀运算符,[],()是后缀运算符,前缀运算符只能出现在标识符的后面 int[22]a,int b*,int*[]c,int*[]f()都是错误的
3:[],()优先级比*高 int (*b)[] 表示b指针指向一个数组 int (*b)()表示b指针指向一个函数
int*(*b)() 标志该指针指向一个返回类型为int*的函数
int* b[]:[]优先级更高,所以b是一个数组,数组中的每一个元素是int*
4:typedef的使用详解:
typedef int c;表示c是int的别名,在后续中int和c是等级的
typedef int* c[10];表示c是一个由10个int类型的指针构成的数组,后续中c p;表示p就是10个int类型的指针构成的数组
[ ],()的优先级比*来的高;
数组指针和指针数组:
数组指针:强调的是指针,int (*p)[10] p是一个指针,指向的是一个数组
指针数组:int *p[10],数组中的每一个元素都是指针 p表示一个二级指针
举个例子&