1. 空类型

1.1 空类型,即void类型

  • void类型:常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。
  • void类型:可以表示一种未知类型。
  • void类型:不能代表一个真实的变量。
    下面代码都企图让void代表一个真实的变量,因此都是错误的代码:
      void a; //错误
      void function(void a); //错误
      void function(void); //正确
  • void体现了一种抽象,这个世界上的变量都是“有类型”。
  • void的出现只是为了一种抽象的需要,如果你正确地理解了面向对象中“抽象基类”的概念,也很容易理解void数据类型。正如不能给抽象基类定义一个实例,我们也不能定义一个void(让我们类比的称void为“抽象数据类型”)变量。
  • void* :则为“无类型指针”,可以指向任何类型的数据

1.2 void类型定义函数

  • void真正发挥的作用在于:(1)对函数返回的限定;(2)对函数参数的限定

    
    #include <iostream>using namespace std;
    void add(void)
    {cout<<"调用了一个无返回值无参数列表的函数add()"<<endl;
    }
    int main()
    {  add();system("pause");return 0;
    }
    =>调用了一个无返回值无参数列表的函数add()

    注:在C++中,不能向无参数的函数传送任何参数,否则编译出错,提示“’fun’ : function does not take 1 parameters”。

1.3 void类型指针

  • void指针:表示未知类型的指针,可以将任意类型的指针直接赋值给void指针。真实地体现了内存操作函数的意义,因为它操作的对象仅仅是一片内存,而不论这片内存是什么类型。

    
    #include<iostream>#include<string>using namespace std;
    int main()
    {void* pv = NULL;string str = "string";int i = 1;pv = &str;cout<<"指向string类型变量:值为"<<*(string*)pv<<" 内存地址为"<<(string*)pv<<endl;pv = &i;cout<<"指向int类型变量的值:值为"<<*(int*)pv<<" 内存地址为"<<(int*)pv<<endl;system("pause");return 0;
    }
    =>指向string类型变量:值为string 内存地址为00AEFA8C指向int类型变量的值:值为1 内存地址为00AEFA80

参考文献 :
[1] 百度搜索关键字:C++数据类型、空类型、void*

C++基础---空类型相关推荐

  1. python爬虫ppt_完全零基础 轻松学Python:数据类型:数字类型、空类型、布尔类型...

    Tip:点击上方或此处 "#完全零基础 轻松学Python" 话题,查看更多内容,欢迎点赞.分享.收藏,谢谢支持! 内 容 概 要 1. 数据类型概述 数据类型的概念.常见的八种数 ...

  2. C#基础入门教程-可空类型(Nullable)

    目录 C#可空类型(Nullable) C# 可空类型(Nullable) 实例练习 Null 合并运算符( ?? ) 实例练习 C#可空类型(Nullable) ? : 单问号用于对 int,dou ...

  3. [C#基础知识系列]专题十:全面解析可空类型

    引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚 ...

  4. [C#基础知识系列]专题十:全面解析可空类型[转]

    原文链接 主要内容: 1:空合并操作符(?? 操作符) ??操作符也就是"空合并操作符",它代表的意思是两个操作数,如果左边的数不为null时,就返回左边的数,如果左边的数为nul ...

  5. 了解下C# 可空类型(Nullable)

    C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. C# 单问号 ? 与 双问号 ?? ? 单问号用于对 int ...

  6. 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)

    文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...

  7. C#学习笔记(六):可空类型、匿名方法和迭代器

    可空类型 为啥要引入可空类型? 在数据库中,字段是可以为null值的,那么在C#中为了方便的操作数据库的值,微软引入了可空类型. 声明可空类型 我们可以使用两种方法声明一个可空类型: 1 Nullab ...

  8. 中关键字 表示空类型_C语言数据类型

    程序在运行时要做的内容就是处理数据.程序要解决复杂的问题,就要处理不同的数据.不同的数据都是以自己本身的一种特定形式存在的,不同的数据类型占用不同的存储空间.C语言中有多种不同的数据类型,其中包括几个 ...

  9. 还不明白可空类型原理? 我可要挖到底了

    一:背景 1. 讲故事 做好自媒体到现在有一个月了,关注我的兄弟应该知道我产出了不少文章,号里的粉丝也多起来了,我也尽最大努力做到有问必回,现在是基础的.高深的问题都接踵而来,可我也只是一只小菜鸟,想 ...

最新文章

  1. Placements(连接)
  2. 服务容错、限流、资源隔离、熔断、监控…3天,撸完了!
  3. UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)
  4. HMTL label标签
  5. LF模式是个坑,ZeroIce中间件让你体会这个痛
  6. 分析业务模型-类图(Class Diagram)(上)
  7. gtk学习总结:GTK从入门到放弃,三天包教包会
  8. 利用Seaborn库进行简单的画图
  9. HDU 5533 Dancing Stars on Me( 有趣的计算几何 )
  10. 对做“互联网产品”的一些想法
  11. chrome 开发工具插件总结
  12. Windows 7常见蓝屏代码解决办法
  13. Terrasolid 安装教程
  14. 便捷注册live、MSN邮箱
  15. 软件测试中的版本控制
  16. 利用 clip-path 绘制不规则的图形
  17. idea的注释老是从行首开始
  18. 阿里面试之Hr面,这个套路把我坑惨了......
  19. 支付宝通过招行网上银行付钱,最多每笔500块
  20. NFC模块方案,轻松实现NFC通讯

热门文章

  1. Linux运维工程师前景
  2. 那么厉害的个人所得税计算器代码你竟然不点开看看,你膨胀了!
  3. python字典添加主键_Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)...
  4. 2021年植发行业研究报告
  5. 物理思维在计算机中的应用,思维导图学物理 学会用大脑的语言进行思考
  6. ie浏览器下载地址(官网地址)
  7. 别把激励员工变成收买员工
  8. 哔哩哔哩bilibili 直播间全屏发弹幕
  9. MySQL 性能调优和优化技巧
  10. 小白的模拟电路初步学习20日打卡(14)