C++支持两种初始化变量的形式:复制初始化和直接初始化
复制初始化 int i =10;
直接初始化 int i(10);
直接初始化语法更灵活效率更高。
对于内置类型(int,char,double......)这两种基本没差别。
对于类对象,有些仅能用直接初始化。(构造函数)
声明和定义
extern声明不是定义,也不分配存储空间,说明变量定义在其他地方,程序中变量可以声明多次,但只能定义一次。
const int i = 10;
常量不可更改,必须初始化
const int m;//error
const变量是文件中的局部变量,不能被其他文件访问。加上extern在定义前就可以了。
typedef
三种目的
为了隐藏特定类型的实现,强调使用类型的目的;
简化复杂定义,易于理解;
允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
struct和class的区别
仅仅影响默认的初始访问级别
class定义直到遇到public,protect之前,都是private
struct第一个都是public