处理类型

类型别名

1、关键字typedef:
typedef double wages; //wages是double的同义词
typedef wages base, *p; //base是double的同义词, p是double *的同义词
2、新标准方法,别名声明(alias declaration):
using UI = usigned int; //UI是usigned int的同义词

指针、常量和类型别名

typedef char *pstring;
const pstring cstr = 0; //cstr是指向char的常量指针
const pstring *ps; //ps是一个指针,它的对象是指向char的常量指针
注意:
1、尝试把类型别名替换成它本来的样子以理解语句的含义,是错误的理解方式;
2、const是对给定类型的修饰。

auto类型说明符(C++11)

1、auto是让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值。
2、auto在一条语句中声明多个变量时,该语句中所有变量的初始基本数据类型都必须一样。
auto i = 0, *p = &i; //正确:i是整数、p是整型指针
auto sz = 0, pi = 3.14; //sz和pi的类型不一致
3、auto类型有时候和初始值的类型并不完全一样:
(1)当引用被用作初始值时,真正参与初始化的其实是引用对象的值,所以编译器以引用对象的类型作为auto的类型。
(2)auto一般会忽略掉顶层const,同事底层const则会保留下来:
const int ci = i;
auto b = ci; //b是一个整数(顶层const被忽略)
auto c = &ci; //c是一个指向整数常量的指针(对常量对象取地址是一种底层const)

decltype类型指示符

decltype的作用是选择并返回操作数的数据类型。
decltype(f()) sum = x; //sum的类型就是函数f的返回类型,但编译器并不实际调用函数f
注意:decltype((variable))(注意是双层括号)的结果永远是引用,而decltype(variable)结果只有当variable结果只有当variable本身就是一个引用时才时引用。

struct

类定义的最后必须加上分号,表示声明符的结束;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值