《C++Primer》笔记 第二章2.5处理类型

来源:互联网 发布:linux的mysql中文乱码 编辑:程序博客网 时间:2024/05/16 08:09

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位顶层constauto b=a;//b只是一个int类型,忽略顶层constconst int* p=&x;auto q=p;//q是一个const int* 类型的指针,指针本身改变,指针对象不能改变
0 0