类型
大小:
sizeof(Type OR Object)
<limits>:关于某个具体实现的所有依赖于实现的特征都可以在该标准库中找到,如:numeric_limits<float>::max()/numeric_limits<char>::is_signed
枚举:
枚举是一个类型,它可以保存一组由用户刻画的值。一旦定义之后,枚举的作用就像是一个整数类型。
enum flag{x=1,y=2,z=4,e=8}; //scope is 0:15
flag f1=4; //error,5 is not the flag type
flag f2=flag(5); //ok, 5 is in the flag scope,.But what's the meaning?
flag f3=f2*2; //error
flag f4=flag(z+e); //ok
flag f5=flag(99); //Not defined, the output is 99
https://jingyan.baidu.com/article/e75aca85526c1b142edac6d9.html
声明&定义
声明vs定义
声明:告诉编译器存在这么一个标识符
定义:在程序中申请一块内存
一个实体可以有多个声明,所有声明在所引用的类型上完全一致,必须有且恰好有一个定义。
声明的操作一般在头文件中,一般不能在头文件中定义变量(类的定义除外)。
声明的结构:
可选“描述符”+“基础类型”+ 声明符 + 可选的初始式
描述符:一个关键字,如virtual、extern,用于说明被声明事物的某些非类型的属性。
声明符:名字+声明运算符,常用声明运算符如下:
* 指针 前缀 *const 常量指针 前缀 & 引用 前缀 [] 数组 后缀 () 函数 后缀 后缀的声明运算符比前缀的声明运算符约束力更强。
一个对象就是存储中一片连续的区域,左值就是引用某个对象的表达式。
教你如何理解复杂的声明(现在还没完全理解)
typedef
typedef unsigned char uc;