在C++中,void表示为无类型,主要有三个用途:

(1)函数的 返回值用void,表示函数没有返回值。

void func(int a, int b)
{
//函数体代码
return;
}

(2)函数的参数填void,表示函数不需要参数(或者让参数列表空着)。

int func(void)
{
//函数体
return 0;
}

(3)函数的形参用void*,表示接受任意数据类型的指针。

注意:

  • 不能用void声明变量,它不能代表一个真实的变量,但是,用void*可以。
  • 不能对void*指针直接解引用(需要转换成其它类型的指针)。
  • 把其它类型的指针赋值给void*指针不需要转换。
  • 把void*指针赋值给其它类型的指针需要转换。
#include <iostream>
using namespace std; //只关心地址本身,不关心里面的内容,用void*可以存放任意类型的地址 //显示变量的十六进制地址的函数:varname-变量名,p-变量的地址
void func(string varname,void* p)
{
cout<<varname<<"的地址是:"<<p<<endl;
cout<<varname<<"的值是:"<<*(char*)p<<endl;
} int main()
{
int a = 89;
char b = 'X';
cout<<"a的地址是:"<<&a<<endl;
cout<<"b的地址是:"<<&b<<endl; func("a",&a);
func("b",&b);
}

void关键字的更多相关文章

  1. js的delete和void关键字

    delete关键字   delete关键字的作用: 删除对象的属性 语法:delete 对象.属性 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性) delete关键字的 ...

  2. C语言void关键字的深刻含义

    C语言void关键字的深刻含义 .概述 本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. .void的含义 void的字面意思是“无类型”,void *则为 ...

  3. C语言学习笔记--void关键字

    1.C语言中Void关键字的含义 void 修饰函数返回值和参数——为了表示“无”,如果函数没有返回值,那么应该将其声明为 void,同样的,如果函数没有参数,也应该声明其参数为 void //f() ...

  4. Python 为什么没有 void 关键字?

    void 是编程语言中最常见的关键字之一,从字面上理解,它是"空的.空集.空白"的意思,最常用于 表示函数的一种返回值类型. 维基百科上有一个定义: The void type, ...

  5. void 关键字

    1. void 的字面意思为“无类型”,void*为“无类型指针”,void*可以指向任何类型的数据 2 用于数据类型封装,典型的如内存操作函数 memcpy 和 memset 的函数原型分别为: v ...

  6. 陈正冲老师讲c语言void关键字

    1. void a void的字面意思是“空类型”,void *则为“空类型指针”,void *可以指向任何类型的数据. void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量 ...

  7. 基本的数据类型 void关键字 都存在类类型

  8. 深刻理解void,void*和sizeof关键字

    void的字面值是“无类型”,void*则是"无类型指针".void*可以指向任何类型的数据.void几乎只有"注释"和限制程序的作用,因为从来没有人会定义一个 ...

  9. 常用C#关键字详解教程

    很多在学习网站后台的同学都对C#的关键字有些摸不到头脑,现在就和大家一起学习一下这些关键字的含义 类型 Void 用作方法的返回类型时,void 关键字指定方法不返回值. 在方法的参数列表中不允许使用 ...

  10. JAVA关键字与保留字说明及使用

    1.abstract 2.boolean 3.break 4.byte 5.case 6.catch 7.char 8.class 9.continue 10.default 11.do 12.dou ...

随机推荐

  1. ios MJRefresh 上拉死循环刷新问题+git 图片

    网上各种办法都试了,只有这种解决方法解决了我的问题,记录一下 通过延迟 1s后,再来请求接口 - (void)viewDidLoad { [super viewDidLoad]; // Do any ...

  2. chatGpt启示

    在应用软件领域实现自动化编程,我现在确实不怀疑了,只是还要等几年的问题.所以我的建议是:如果还想撸代码,可以往基础软件方向走,或者直接去大公司做 AI 工具:不想搞软件了,就去多了解业务吧.早做准备早 ...

  3. server2008R2 安装.net framework 4.7 4.8 时间戳签名和/或证书无法验证或格式错误

    安装补丁 KB4474419 和KB4490628 实测有效 补丁下载: https://www.catalog.update.microsoft.com/Search.aspx?q=4474419 ...

  4. Optional类与使用==判断null有什么区别?使用Optional类有什么优势?

    1.使用object==null的例子 2.null带来的问题 3.其他语言中null的处理(替代) 4.Java8的Optional类 4.1 这样做有什么好处呢? 4.2 引入Optional类的 ...

  5. Vue+Element+Table表格动态跨列文章

    https://my.oschina.net/u/4772459/blog/4699602 如图所示: 1 <template class="SysRole"> 2 & ...

  6. vue导出文件

    /**导出 */ async toExcel() { // let result = await this.axios({ // method: 'get', // url: `issdc-manag ...

  7. vue多图片上传组件

    <template> <!-- 上传控件 用法: <upload-widget v-model="imgUrl"></upload-widget ...

  8. OSIDP-线程-04

    进程和线程 进程具有两个相互独立的特点: 1.资源所有权:进程包括存放进程映像的虚拟地址空间,具有对资源的控制权. 2.调度/执行:进程具有运行状态和优先级,是可被 OS 调度和分派的实体. 通常将分 ...

  9. Spring 笔记一

    1.什么是框架? 框架,是一种半成品的软件,是高度抽取可重用代码的一种设计,多个可重用模块的集合,形成某个领域的整体解决方案. 2.Spring 框架 概述:Spring 是一个开源框架,一个容器框架 ...

  10. Java使用Redis实现分布式锁

    1.概述 此处使用Redis的setNx命令和expire命令和del命令来实现分布式锁. 首先我们要知道, 我们的redis执行命令是队列方式的,并不存在多个命令同时运行,所有命令都是串行的访问.那 ...