类型别名: 为已有类型另外命名
1. typedef 已有类型名 新类型名表
例: typedef double Area, Volume;
typedef int Natural;
Nature i1, i2;
Area a;
Volume v;
2. using 新类型名 = 已有类型名
例: using Area = double
using Volume = double
枚举类型
问题: 如何表示一个星期的七天
定义方式: 将全部可取值一一列举出来
语法形式:
enum 枚举类型名(变量值列表)
enum Weekday
{SUN, MON, TUE, WED, THU, FRI, SAT}
默认情况下
SUN = 0, MON = 1, TUE=2, 。。。,SAT= 6
枚举元素是常量,不能对他们赋值
枚举元素具有默认值,它们依次为:0,1,2.。。。
也可以在声明时另行制定枚举元素的值 例: enum Weekday{SUN = 7, MON =1, TUE, WED, THU, FRI, SAT} 后面依次为2,3,4,5,6
枚举值可以进行关系运算
整数值不能直接赋给枚举变量
枚举值可以赋给整型变量
auto类型与decltype类型
auto: 编译器通过初始值自动推断变量的类型
例:
auto val = val1+val2 //val1 + val2 是什么类型 val就是什么类型
decltype: 定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量
例:decltype(i)j = 2
表示j以2为初始值,但是类型和i一样