C++-nullptr-类型推导

1、nullptr(掌握)(NULL 就是0)

NULL 在源码当中就是0,因此可能会存在一些二义性的问题。

复制代码
#include <iostream>`
`#include <memory>`
`using namespace std;`


`void func(int a)`
`{`
`    cout << "a = " << a << endl;`
`}`

`void func(char *b)`
`{`
`    cout << "b = " << b << endl;`
`}`

`int main()`
`{`
`    func(NULL); // a == 0`
`    return 0;`
`}`

`

在C++11 中使用nullptr代替了NULL,作为空指针的表示方式。

复制代码
#include <iostream>`
`#include <memory>`
`using` `namespace std;`
`void` `func(int a)`
`{`
`    cout <<` `"a = "` `<< a << endl;`
`}`
`void` `func(char` `*b)`
`{`
`    cout <<` `"b = "` `<< b << endl;`
`}`
`int` `main()`
`{`
    `func(nullptr);` `// b`
    `return` `0;`
`}`
`

2、类型推导(auto掌握)

使用auto关键字可以推导类型。

复制代码
#include <iostream>`
`#include <memory>`
`using` `namespace std;`

`double` `test()`
`{`
    `return` `1.1;`
`}`

`int` `main()`
`{`

    `auto i =` `10;`    `// i的类型自动推导为整形(int)`
`    cout << i << endl;`

    `auto i2 =` `19.4;`
`    cout << i2 << endl;` `// i2的类型自动推导为浮点型`

    `auto i3 =` `new` `auto(10);` `// i3的类型被推导为 int *`
`    cout <<` `*i3 << endl;`

    `auto i4 =` `test();`
`    cout << i4 << endl;`

    `auto i5 =` `"hello";`
`    cout << i5 << endl;`

    `auto i6 =` `'a';`
`    cout << i6 << endl;`

    `delete i3;`
`    i3 =` `nullptr;`

    `return` `0;`
`}`

`

decltype 可以推导表达式的类型,需要注意的是,decltype只会分析表达式的类型,不会具体计算表达式里的值。(熟悉)

复制代码
#include <iostream>`
`#include <memory>`
`using` `namespace std;`


`int` `main()`
`{`
    `auto x =` `1;`
    `auto y =` `2;`

    `decltype(x+y+3*32+1.3) z =` `888.32;` `//int + int *int + double = double;`
`    cout << z << endl;`
`    cout <<` `sizeof(z)` `<< endl;`
    `return` `0;`
`}`

`
相关推荐
2301_800256112 分钟前
8.2 空间查询基本组件 核心知识点总结
数据库·人工智能·算法
不穿格子的程序员2 分钟前
从零开始写算法——矩阵类题:矩阵置零 + 螺旋矩阵
线性代数·算法·矩阵
waeng_luo12 分钟前
[鸿蒙2025领航者闯关] 表单验证与用户输入处理最佳实践
开发语言·前端·鸿蒙·鸿蒙2025领航者闯关·鸿蒙6实战·开发者年度总结
高频交易dragon15 分钟前
5分钟和30分钟联立进行缠论信号分析
开发语言·python
ULTRA??17 分钟前
C/C++函数指针
c语言·开发语言·c++
还没想好取啥名18 分钟前
C++11新特性(一)——自动类型推导
开发语言·c++·stl
我是华为OD~HR~栗栗呀21 分钟前
华为OD-C面经-23届学院哦
java·c++·python·华为od·华为·面试
资深web全栈开发26 分钟前
LeetCode 3432. 统计元素和差值为偶数的分区方案数
算法·leetcode
xiaozi412027 分钟前
Ruey S. Tsay《时间序列分析》Python实现笔记:综合与应用
开发语言·笔记·python·机器学习
西贝爱学习33 分钟前
Visual Studio下载地址,vs2022安装程序
c++