栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++小知识01 —— void*

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++小知识01 —— void*

不知道指针类型?那就强转void*。这是C/C++程序员经常遇到的问题,那么void* 到底是什么意思呢,接下来我就和大家说一说他的详解和应用

void在英文词典中译为“空虚、空间、空隙”,而它在C/C++中被翻译为“无类型”,相应的void*则为“无类型指针”

void作用

作用1:限定函数返回值的类型

当函数不需要返回值的时候,我们可以用void类型,如下

void fun(int a);

作用2:限定函数参数

当函数不需要参数的时候,我们可以在函数的参数列表中写上void,如下

int fun(void);
void*使用规则

1、void*可以指向任何类型的指针,也就是说任何类型的指针都可以给void*赋值

int* a = NULL;
void *p = NULL;
p = a;

但是如果要给指针p赋值给其他类型的指针,就必须强转

int *b = NULL;
b = (int*)p;

 这里我们可以看到malloc函数,他的函数原型是

void *malloc(unsigned int size)

 所以我们用malloc申请空间的时候,我们都必须显式强转到对应的类型,才能成功进行空间申请

2、void*类型不能进行一些算数操作,比如p++、p+=1等,因为void*是无类型指针,同样就不能知道它的内存,所以不能进行一些运算操作。当然也没有人会给自己定义一个void类型的变量,所以这一点我就不会详细讲述,如果大家想要了解,可以去看看原文,其中有很详细的说明为什么void*不能进行这些操作

C语言中void*详解及应用 - wuyudong - 博客园 (cnblogs.com)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/876595.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号