1.类型别名
两种方法定义类型别名:
- typedef定义
常用typedef 类型 类型别名;
例如
typedef double wages;
typedef float* salary;//salary是 float*类型的指针
- using定义
在c++11新标准中可以使用using来定义:
using wages = double;
using salary = float*;//salary 是float*类型的指针
2.auto 类型
auto类型即为自动类型,当不能确定当前变量的类型的时候,用auto可以自动的有编译器来确定类型;
double var1=0.333;
double var2=0.444;
auto var=var1+var2;//auto 自动确定当前变量的类型;
需要注意的是,一个类型的声明中以允许一种类型存在,比如
int a=0,b=2011;
const int constant=1024;
//所以auto也该如此
auto a=0,b=3.14;//这样是错误的;
const auto c=constant;//这样是正确的;
auto的特点:
自动忽略顶层const,保留底层const;
讲解顶层与底层const:
http://blog.csdn.net/wunghao8/article/details/39367891
http://blog.csdn.net/kturing/article/details/45008359
如果a是顶层的const,比如
const int a =0;//a位顶层const
auto b=a;//b只是一个int类型,忽略顶层const
const int* p=&x;
auto q=p;//q是一个const int* 类型的指针,指针本身改变,指针对象不能改变