C++ 的自动类型auto类型推断decltype空指针nullptr 快速遍历for in
2021/10/22 17:09:46
本文主要是介绍C++ 的自动类型auto类型推断decltype空指针nullptr 快速遍历for in,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- auto 自动类型
- decltype 推断表达式的类型
- nullptr 空指针,专门针对指针做的符号
- for in快速遍历 ,语法格式是for (:)
C++ 11以后的一下新语法常用的如下:
auto 自动类型
这个相当于swift里面的var ,自动通过右边表达式推断出类型.
示例代码如下:
auto a = 5;//自动把a推断为 int类型 a = 6.14; cout<< a <<endl; //输出6,因为a 是int类型 auto d = 3.14;//把d当成double,相当于double d = 3.14 d = 5; cout << d <<endl;//输出5,把d当成double
decltype 推断表达式的类型
这个跟typeof作用一样.decltype,推断后面表达式的类型,返回类型
int a2 = 3; double d2 = 3.14; decltype(a2) c = 5;//推断a2的类型为int,然后用int 定义 c,相当于 int c = 5 cout << c <<endl; decltype(a2+d2) c2 = 5.11;//推断出a2+d2 = 3+ 3.14 =6.14 是浮点型.然后用浮点型定义5.11 ,相当于是double c2 = 5.11 cout <<sizeof(c2)<<endl; cout <<sizeof(double)<<endl;//c2和double的长度都是8,说明是double不是float cout << c2 <<endl; /* typeof也是推断表达式类型,返回类型,和decltype作用一样 */ typeof (a2+d2)c3 = 6.11; cout <<c3 <<endl;
nullptr 空指针,专门针对指针做的符号
因为NULL是0 ,可以用来给指针赋值,当有函数接收空指针的时候,和接收int的时候会产生二义性.用nullptr,就是直接调用指针参数的函数.
下面例子2个函数test都接收参数分别是 int和 int* ,用了nullptr就是直接调用int* ,如果传入NULL就会产生二义性,编译器不知道调用哪个
void test(int a){ cout<<"test(int a)"<<endl; } void test(int *p){ cout<<"test(int *p)"<<endl; } int main(int argc, const char * argv[]) { // test(NULL);//xcode下编译会报错,模糊不清 test(nullptr); }
for in快速遍历 ,语法格式是for (
这篇关于C++ 的自动类型auto类型推断decltype空指针nullptr 快速遍历for in的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享