一. auto
c++auto
根据初始值推断真实的数据类型
类似的有decltype()
确定表达式的数据类型
auto x = 7; // 使用整数7对变量x进行初始化,x被推断为int类型
typedef decltype(t*u) M;
M* tmp = 0;
tmp = new M;
二. static
-
静态局部变量:用于函数体内部修饰变量,这种变量的生存期一直到程序关闭。
如果没有显式初始化,会被程序自动初始化为0
存在的意义就是随着第一次函数的调用而初始化,却不随着函数的调用结束而销毁,且只初始化一次,也就是你第二次调用函数时,不会继续初始化,而会直接跳过 -
静态全局变量和静态函数:表示该变量或函数只在本文件可见。
-
类:
- 静态数据成员:这种数据成员的生存期大于 class 的对象。静态数据成员是每个类有一份,普通数据成员是每个对象有一份,因此静态数据成员也叫做类变量,而普通数据成员也叫做实例变量。
- 静态成员函数:用于修饰类的成员函数。静态函数属于类的,不属于某一个具体的对象。访问方式,可以通过对像调用,也可以用类名::函数名进行访问。
- 静态成员函数不能访问非静态(包括成员函数和数据成员),但是非静态可以访问静态
extern
extern
用来在另一个文件中声明一个全局变量或函数