孔乙己学C语言(10)

本文深入探讨了C语言中的void类型,解释了它并非数据类型,而是用于完善语法,指示无类型指针,以及作为函数参数的灵活性。通过实例分析,展示了void类型在指针操作和函数定义中的独特作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 void类型

《般若波罗密多心经》中曾经提到过“舍利子,色不异空,空不异色,色即是空,空即是色”。“空即是色”这是一个又被滥用的成语,却刚好点破了void这个空类型的指针却可以用来指向任何类型的变量,但是这里刚好可以拿来介绍一下void类型的用途。

问题描述:

C语言的定义中,并没有void这样的一个数据类型,可是这个void却频繁的出现在了本来应该是数据类型才应该出现的地方,那么到底void是什么呢?

实例分析:

void严格来说并不是一个数据类型。void的作用主要是为了完善语法。实际上并不能使用void去定义任何一个变量。

例如 void a

这样系统会报错,因为void类型为空,也不会占用任何空间,这样的话,变量a不会对应任何内存,这样即使分配成功,也不会有任何意义。因此C标准干脆规定不允许进行这样的定义。

void的第一个作用是指示一个无类型的指针,这个本来是空类型的指针却可以指示所有类型的数据(“空即是色”?)。

尤其是当我们想要编写一个函数的参数值可以是任意类型指针,那么应声明其参数为void *

虽然我们不能定义一个void类型的变量,但是我们却可以定义一个指向void类型的指针void*

比如 void* p;这个定义就是正确的。

int _tmain(int argc, _TCHAR* argv[])

{

         void* p;

         int a;

         p=&a;

         return 0;

}

 

深入剖析:

不能将指向不同类型的指针相互赋值,但是void类型的指针却可以被任何类型的指针赋值。

void的第一个作用就是和指针相结合使用

1空指针可以用来判断指针的合法性

2用来指向任意类型的数据

3作为函数参数。

void的第二个作用是作为函数的参数和函数的返回值。

参数列表中C语言()和(void)的含义是完全不一样的,()表示的可以有任意的参数,(void)表示的是没有参数。这和C++不同。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值