cppstyle类型转换
cout<<static_cast(double)(1);
//输出double类型的1
cpplist初始化
//直接list初始化
int a{1};
//拷贝list初始化
int a={1};
reinterpret_cast const_cast 区别
在这里插入代码片
静态类型和动态类型的区别
静态类型语言:c,c++ 在编译时检查代码
动态类型语言:python 在运行时检查代码块类型的一致性
混合型:顾名思义
在这里插入代码片
auto关键字
自动类型推导:
int a;
auto a_a=a;
//a_a自动类型名定为int 跟随初始值的类型进行相应变化;
注意:定义在一个序列中的auto变量必须推导为同一类型的值;
auto a=10,b=0.6;//不行
//auto自动转换过程中是不管const 和&的
const int a{10};
auto c=b;
//c的类型为int 而非const int
//auto类型带上&符号则const和&不去掉
const int a{10};
auto& c=a;//const int c
int& b=a;
auto& c=b;//int& c=b;
//数组使用时,auto为指针
int a[3]={1,2,3};
auto b=a;//int*
cout<<b;//输出的是b的地址;
数组名字退化为指针
//数组使用,auto带上& 则推导类型为数组类型
int a[3]={1,2,3};
auto& b=a;
cout<<b[1];//cout<<2;
decltype
在编译时期推导一个表达式的类型,而不用初始化,
int fun1{
return 10;
}
decltype(fun1()) x;//查询fun1的类型,并把其类型赋给x;