C语言修行之基础篇 (二十一)详解void类型

文章讨论了编程语言中的强类型和弱类型概念,强调强类型语言如C语言中数据类型的必要性。void类型的本质被解释为不确定或未知类型,常用于描述尚未指定类型的内存,如在malloc函数的返回指针中。void*类型在内存操作中起到通用指针的作用,但最终需要转换为具体类型。


编程语言分:强类型语言和弱类型语言。

强类型语言 中所有的变量都有自己固定的类型,这个类型有固定的内存占用,有固定的解析方法。

弱类型语言 中没有类型的概念,所有变量全都是一个类型(都是字符串),程序在用的时候再根据需要来处理变量。

注:C语言属于强类型语言


数据类型的本质含义

1、数据类型的本质就决定 变量的内存占用数,和内存的解析方法。

2、C语言中变量必须有确定的数据类型 ,如果一个变量没有确定的类型,会导致编译器无法解析这个变量对应的内存。(不可能没有类型的变量)

3、C语言中可以有没有类型的内存。 在内存还没有和具体的变量相绑定之前,内存就可以没有类型。实际上内存就是没有类型的,内存只是因为和具体变量相关联后才有确定的类型(内存自身是不知道的,但是编译器直到。程序在使用这个内存时知道类型,就会按照类型的含义去进行内存的读写)


void类型的本质

void类型含义是:不知道类型,不确定类型,还没确定类型。

void a;
解析: a是一个变量,而且a肯定有确定的类型,只是目前还不确定a的类型,所以标记为void。


为什么需要void类型

1、描述一段还没有具体使用的内存时需要使用void类型

2、应用:void *malloc(…)
malloc函数向系统堆管理器申请一段内存给当前程序使用,malloc返回的是一个指针,这个指针指向申请的那段内存空间。malloc刚申请的内存还没用来存储数据,malloc函数也无法预知将来会用来存放什么类型变量,无法返回具体类型的指针。因此使用void *类型告诉外面申请到一段未确定类型的干净内存。

3、void *类型最终会被强制转为确定的类型 (强制类型转换)

4、void类型使用时一般都是void *类型指针表示的内存;void类型来修饰变量是无意义的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bazinga bingo

您的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值