void关键字
在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关键字的更多相关文章
- js的delete和void关键字
delete关键字 delete关键字的作用: 删除对象的属性 语法:delete 对象.属性 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性) delete关键字的 ...
- C语言void关键字的深刻含义
C语言void关键字的深刻含义 .概述 本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. .void的含义 void的字面意思是“无类型”,void *则为 ...
- C语言学习笔记--void关键字
1.C语言中Void关键字的含义 void 修饰函数返回值和参数——为了表示“无”,如果函数没有返回值,那么应该将其声明为 void,同样的,如果函数没有参数,也应该声明其参数为 void //f() ...
- Python 为什么没有 void 关键字?
void 是编程语言中最常见的关键字之一,从字面上理解,它是"空的.空集.空白"的意思,最常用于 表示函数的一种返回值类型. 维基百科上有一个定义: The void type, ...
- void 关键字
1. void 的字面意思为“无类型”,void*为“无类型指针”,void*可以指向任何类型的数据 2 用于数据类型封装,典型的如内存操作函数 memcpy 和 memset 的函数原型分别为: v ...
- 陈正冲老师讲c语言void关键字
1. void a void的字面意思是“空类型”,void *则为“空类型指针”,void *可以指向任何类型的数据. void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量 ...
- 基本的数据类型 void关键字 都存在类类型
- 深刻理解void,void*和sizeof关键字
void的字面值是“无类型”,void*则是"无类型指针".void*可以指向任何类型的数据.void几乎只有"注释"和限制程序的作用,因为从来没有人会定义一个 ...
- 常用C#关键字详解教程
很多在学习网站后台的同学都对C#的关键字有些摸不到头脑,现在就和大家一起学习一下这些关键字的含义 类型 Void 用作方法的返回类型时,void 关键字指定方法不返回值. 在方法的参数列表中不允许使用 ...
- 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 ...
随机推荐
- ios MJRefresh 上拉死循环刷新问题+git 图片
网上各种办法都试了,只有这种解决方法解决了我的问题,记录一下 通过延迟 1s后,再来请求接口 - (void)viewDidLoad { [super viewDidLoad]; // Do any ...
- chatGpt启示
在应用软件领域实现自动化编程,我现在确实不怀疑了,只是还要等几年的问题.所以我的建议是:如果还想撸代码,可以往基础软件方向走,或者直接去大公司做 AI 工具:不想搞软件了,就去多了解业务吧.早做准备早 ...
- server2008R2 安装.net framework 4.7 4.8 时间戳签名和/或证书无法验证或格式错误
安装补丁 KB4474419 和KB4490628 实测有效 补丁下载: https://www.catalog.update.microsoft.com/Search.aspx?q=4474419 ...
- Optional类与使用==判断null有什么区别?使用Optional类有什么优势?
1.使用object==null的例子 2.null带来的问题 3.其他语言中null的处理(替代) 4.Java8的Optional类 4.1 这样做有什么好处呢? 4.2 引入Optional类的 ...
- Vue+Element+Table表格动态跨列文章
https://my.oschina.net/u/4772459/blog/4699602 如图所示: 1 <template class="SysRole"> 2 & ...
- vue导出文件
/**导出 */ async toExcel() { // let result = await this.axios({ // method: 'get', // url: `issdc-manag ...
- vue多图片上传组件
<template> <!-- 上传控件 用法: <upload-widget v-model="imgUrl"></upload-widget ...
- OSIDP-线程-04
进程和线程 进程具有两个相互独立的特点: 1.资源所有权:进程包括存放进程映像的虚拟地址空间,具有对资源的控制权. 2.调度/执行:进程具有运行状态和优先级,是可被 OS 调度和分派的实体. 通常将分 ...
- Spring 笔记一
1.什么是框架? 框架,是一种半成品的软件,是高度抽取可重用代码的一种设计,多个可重用模块的集合,形成某个领域的整体解决方案. 2.Spring 框架 概述:Spring 是一个开源框架,一个容器框架 ...
- Java使用Redis实现分布式锁
1.概述 此处使用Redis的setNx命令和expire命令和del命令来实现分布式锁. 首先我们要知道, 我们的redis执行命令是队列方式的,并不存在多个命令同时运行,所有命令都是串行的访问.那 ...