关于void的总结

一.void 在英文中作为名词的解释为 "空虚、空间、空隙",
 而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针"

 void * fun( ) ; //声明一个返回值是任意类型的指针 的函数fun()
 void vfun( ) ; //声明一个没有返回值 的函数vfun()

二.对于void是无类型(不确定类型),无类型可以包含有类型
关于void函数
   1.没有返回值的return语句只能用在返回类型是void的函数中。返回void的函数不要求非得有
   return语句,因为在这类函数的最后一句后面会隐式地执行return
   2.通常情况下,void函数如果想在它的中间位置提前退出,可以使用return语句。return的
   这种用法有点类似于我们用break语句退出循环

代码举例:
void swap(int &v1,int &v2) 
{
	if(v1==v2)
	{
		return;
	}//如果两个值相等,则不需要交换,直接退出
	int tmp=v2;
	v2=v1;
	v1=temp;
	//此处无需显式的return语句 	
}

三.关于void*是无类型指针(不确定类型指针),void*fun()可以返回一个任意类型的指针

(1)void *可以接受任何类型的赋值:
    void *a = NULL;
    int * b = NULL;
    a  =  b;//a是void * 型指针,任何类型的指针都可以直接赋值给它,
//无需进行强制类型转换
//我们可以认为void就是一张白纸可以在上班写任何类型的数值。
(2)void *可以赋值给任何类型的变量 但是需要进行强制转换:
注意: void* 在转换为其他数据类型时,赋值给void* 的类型 和目标类型必须保持一致。
简单点来说:void* 类型接受了int * 类型的赋值后,这个void * 不能转化为其他类型,
必须转换为int *类型;
代码举例:
#include<iostream>
using namespace std;
int main()
{
	int a=1;
	int *p;//p是int*型指针
	p=&a;
	//int *p=&a;//p是int*型指针 
    void *p2=&a;//p2是void*型的指针 
	cout<<p<<" "<<*p<<endl;//输出0x70fdfc和1 
	cout<<(int *)p2<<" "<<*(int *)p2<<endl;//输出0x70fdfc和1
}

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值