处理类型
来源:互联网 发布:java 日志级别 trace 编辑:程序博客网 时间:2024/05/17 08:15
1.类型别名
a.传统方法:关键字typedef
typedef int newType; //newType 是int的同义词typedef newType *p;//p是int*的同义词
b.新方法:别名声明(alias declaration),使用 using
using newType=int;//newType是int的同义词
当某个类型别名指代的是复合类型或常量,不能把它带入声明语句中。
typedef char *pstring;const pstring cstr=0;//cstr是指向char的常量指针 同等于char * const cstr =0; cosnt pstring *ps;//ps是一个指向char的常量指针的指针
pstring 实际上是指向char的指针,所以const pstring 是指向char的常量指针。
2.auto类型说明符
auto是C++11新引入的类型说明符,用它能让编译器替我们去分析表达式所属的类型。
auto让编译器通过初始值来推断变量的类型。(初始值是引用对象时,初始类型判断为所引用的对象的类型)
auto 声明语句中的所有变量的初始基本数据类型必须一致。
auto 一般忽略掉顶层const,保留底层cosnt。
const int a=0;auto b=a,&c=a;//b是int,c是int类型a的引用 (a的顶层const 被忽略掉了)auto d=&a;//d是指向整数常量的指针(对常量对象取地址是一种底层const)
3.decltype类型指示符
C++引入说明符decltype,用来从表达式中的类型推断出要定义的变量类型,并且不需要用该表达式的值初始化变量(不然可以用auto)。
decltype(f()) a;//用f()返回值类型定义adecltype(a) b;//用a对应的类型定义b
decltype推断方式:
a.表达式时一个变量时,decltype返回该变量的类型(包括顶层const和引用)。
decltype(f()) a;//用f()返回值类型定义adecltype(a) b;//用a对应的类型定义b
注意:decltype((variable))(双层括号)的结果永远是引用。
若表达式求值结果是左值时,返回值对应的类型的引用类型。若表达式求值结果是右值,返回值对应的类型。
(左右值简单归纳:当一个对象被用作右值得时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置))
(左右值简单归纳:当一个对象被用作右值得时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置))
(一般来说,可以放在赋值操作符左边的是左值,可以放在右边的而是右值)
(左值表示程序中必须有一个特定的名字引用到这个值。右值表示程序中没有一个特定的名字引用到这个值除了用地址。)
decltype(f()) a;//用f()返回值类型定义adecltype(a) b;//用a对应的类型定义b
阅读全文
0 0
- 类型 处理
- 处理类型
- 处理类型
- 类型处理测试
- 字符串类型处理实战
- oracle-timestamp类型处理
- 6.4 处理选项类型
- NSDate时间类型处理
- java日期类型处理
- java日期类型处理
- Java - 处理unsigned类型
- JAXB处理时间类型
- 货币类型返回处理
- oracle-timestamp类型处理
- OpenCV边界处理类型
- DateTime类型常用处理
- SQLite--字段类型处理
- C++ 中的处理类型
- 交大OJ 3002 去重归并排序
- 桶排字符串
- 类的内存分布或大小
- linux下的关机命令
- Cad二次开发(三)
- 处理类型
- java_day06
- gcc和g++的区别
- java中产生随机数的方法
- 中国人民银行的身份认证信息系统存在严重bug
- mysql5.7官网直译SQL语句优化--分组优化
- 什么是shell
- Judge Route Circle
- linux内核-网络报文发送流程