#include <iostream>
using namespace std;
void f(int)
{
cout<<"f(int)"<<endl;
} void f(bool)
{
cout<<"f(bool)"<<endl;
} void f(void*)
{
cout<<"f(void*)"<<endl;
} int main()
{
f(0);
f(NULL);
f(nullptr); return 0;
}

在C++中:

1. 0首先会被视为int,所以这里调用f(int)。

2. 对于NULL,C++首先视其为广义整形,如果被定义为普通的0,那么调用f(int),如果是0L,由于long->void* ,long->int,long->void*都是合法的,所以编译会出错。

3. 对于nullptr,不属于广义整型,也不属于普通意义上的指针,它可以隐式转化为任何的的原始指针类型,故可以将其理解为一个可以指向任何类型的指针。

比如:

使用0和f比较,一时不能够确定是广义整型还是指针类型,而nullpter则只会被认为是指针类型,故不会产生产生二义性。

最新文章

  1. 单例模式(Java)
  2. Eclipse10个最有用的快捷键[From: Internet]
  3. Dynamics AX7 materials
  4. 安卓app设计规范整理和Android APP设计篇(转)
  5. hbase体系结构以及说明
  6. POJ 3311 Hie with the Pie(Floyd+状态压缩DP)
  7. 可变长参数列表误区与陷阱——va_arg不可接受的类型
  8. Copy-and-swap
  9. xp+WinDBG+VMware调试内核
  10. 记录一个pom文件
  11. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习5
  12. [模板] 匈牙利算法&amp;&amp;二分图最小字典序匹配
  13. [Kubernetes]谈谈Kubernetes的本质
  14. Go Web:Cookie
  15. Spark SQL整体架构
  16. 测试工具之ab
  17. HTMLParser 笔记
  18. mysql互为主从实战设置详解及自动化备份(Centos7.2)
  19. vue 监听对象里的特定数据
  20. oracle 视图views

热门文章

  1. 通过css实现表格的斜线
  2. UDP&amp;串口调试助手用法(3)
  3. c++设计模式概述之状态
  4. c++11之字符串格式化
  5. 【LeetCode】905. Sort Array By Parity 解题报告(Python)
  6. Git reflog 引用日志使用详解
  7. Python pyecharts绘制词云图
  8. [算法笔记-题解]问题 A: 例题4-1 一元二次方程求根
  9. HTML网页设计基础笔记 • 【第7章 盒子模型】
  10. Debug解决问题方法论