C++基础---空类型
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++基础---空类型相关推荐
- python爬虫ppt_完全零基础 轻松学Python:数据类型:数字类型、空类型、布尔类型...
Tip:点击上方或此处 "#完全零基础 轻松学Python" 话题,查看更多内容,欢迎点赞.分享.收藏,谢谢支持! 内 容 概 要 1. 数据类型概述 数据类型的概念.常见的八种数 ...
- C#基础入门教程-可空类型(Nullable)
目录 C#可空类型(Nullable) C# 可空类型(Nullable) 实例练习 Null 合并运算符( ?? ) 实例练习 C#可空类型(Nullable) ? : 单问号用于对 int,dou ...
- [C#基础知识系列]专题十:全面解析可空类型
引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚 ...
- [C#基础知识系列]专题十:全面解析可空类型[转]
原文链接 主要内容: 1:空合并操作符(?? 操作符) ??操作符也就是"空合并操作符",它代表的意思是两个操作数,如果左边的数不为null时,就返回左边的数,如果左边的数为nul ...
- 了解下C# 可空类型(Nullable)
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. C# 单问号 ? 与 双问号 ?? ? 单问号用于对 int ...
- 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)
文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...
- C#学习笔记(六):可空类型、匿名方法和迭代器
可空类型 为啥要引入可空类型? 在数据库中,字段是可以为null值的,那么在C#中为了方便的操作数据库的值,微软引入了可空类型. 声明可空类型 我们可以使用两种方法声明一个可空类型: 1 Nullab ...
- 中关键字 表示空类型_C语言数据类型
程序在运行时要做的内容就是处理数据.程序要解决复杂的问题,就要处理不同的数据.不同的数据都是以自己本身的一种特定形式存在的,不同的数据类型占用不同的存储空间.C语言中有多种不同的数据类型,其中包括几个 ...
- 还不明白可空类型原理? 我可要挖到底了
一:背景 1. 讲故事 做好自媒体到现在有一个月了,关注我的兄弟应该知道我产出了不少文章,号里的粉丝也多起来了,我也尽最大努力做到有问必回,现在是基础的.高深的问题都接踵而来,可我也只是一只小菜鸟,想 ...
最新文章
- Placements(连接)
- 服务容错、限流、资源隔离、熔断、监控…3天,撸完了!
- UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)
- HMTL label标签
- LF模式是个坑,ZeroIce中间件让你体会这个痛
- 分析业务模型-类图(Class Diagram)(上)
- gtk学习总结:GTK从入门到放弃,三天包教包会
- 利用Seaborn库进行简单的画图
- HDU 5533 Dancing Stars on Me( 有趣的计算几何 )
- 对做“互联网产品”的一些想法
- chrome 开发工具插件总结
- Windows 7常见蓝屏代码解决办法
- Terrasolid 安装教程
- 便捷注册live、MSN邮箱
- 软件测试中的版本控制
- 利用 clip-path 绘制不规则的图形
- idea的注释老是从行首开始
- 阿里面试之Hr面,这个套路把我坑惨了......
- 支付宝通过招行网上银行付钱,最多每笔500块
- NFC模块方案,轻松实现NFC通讯