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* 類型的指針,指針本身改變,指針對象不能改變