auto类型说明符
2016-06-24 15:08
197 查看
其实很好理解,当把值拷贝到auto修饰的变量的时候,通通忽略顶层const。但是当需要把变量作为别名绑定到其他变量上的时候,就不会省略底层const。
当我们不知道某个表达式的值的类型,但是需要用一个变量来存储这个值得时候,就用到auto类型说明符。
auto让编译器通过初始化的值来推算变量的类型。所以用auto定义变量时必须有初始值。
例如 auto a =10;//定义了一个整形变量a
auto的使用有以下需要注意的点:
当常量作为初始值的时候,auto一般忽略掉const(顶层const)。
例如:const int a=10;
auto b =a;此时的auto等价于int
当一个指针作为初始值时,auto一般忽略到顶层const(如果有),保留下底层const。
例如:
const int *const p=&a;
auto b=p;// 此时的auto等价于 const int *
如果想用auto定义一个引用时,初始值中的顶层const任然存在。
例如
auto &b=a;
还需注意:auto & b=20;是错误的应该定义为const auto &b=20;
当然我们可以手动的给auto加上顶层const;
顶层const:const修饰的是变量本身。
顶层const:const修饰的是变量指向的内容。
当我们不知道某个表达式的值的类型,但是需要用一个变量来存储这个值得时候,就用到auto类型说明符。
auto让编译器通过初始化的值来推算变量的类型。所以用auto定义变量时必须有初始值。
例如 auto a =10;//定义了一个整形变量a
auto的使用有以下需要注意的点:
当常量作为初始值的时候,auto一般忽略掉const(顶层const)。
例如:const int a=10;
auto b =a;此时的auto等价于int
当一个指针作为初始值时,auto一般忽略到顶层const(如果有),保留下底层const。
例如:
const int *const p=&a;
auto b=p;// 此时的auto等价于 const int *
如果想用auto定义一个引用时,初始值中的顶层const任然存在。
例如
auto &b=a;
还需注意:auto & b=20;是错误的应该定义为const auto &b=20;
当然我们可以手动的给auto加上顶层const;
顶层const:const修饰的是变量本身。
顶层const:const修饰的是变量指向的内容。
相关文章推荐
- NotificationManager和Notification的使用总结
- singleTop和singleTask的区别(附带 Activity 四种加载模式简介)
- 视频码率
- 将数据库文件导入mysql并输出为txt文件
- 通过url获取图片尺寸的几种方法:JS和php
- 实验四 主存空间的分配和回收
- React Native Life Cycle and Communication
- mysql批量导入sql
- C#指定窗口显示位置的方法
- qtp执行文本中的sql语句/脚本
- js正则表达式的运用
- Android studio导出的apk在真机上安装提示“文件不存在或已失效”的解决方法
- Java实验(11) 网页分析
- Using the D3.js Visualization Library with AngularJS
- 线程的生命周期
- mysql 2003 (113)
- python的执行过程
- appCloud学习积累
- Js apply 方法 详解
- HDOJ 5226 Tom and matrix