(void)0和0的区别及用法
(void)0相当于宏NULL,NULL本身的含义为“空”,在c语言代表“不存在、不确定”的含义。
0不能简单的理解为“没有”的意思,在c语言及二进制中,0和1代表的是“一件事物的正反两个方面“,0是一种明确的状态,不是没有含义。
举例:
1、就像一个led灯开关一样,0代表关,1代表开。”关“是一种明确的状态,代表灯没有亮,”开“也是一种明确的状态,代表灯亮了。”空“代表什么呢?代表没有看到那盏灯(未确定),不知道现在是”开“还是”关“,甚至是不是存在那么一盏灯,都是未知的(未定义)。
2、二进制的0和1,可以理解为一张纸的正反面,它们之间是相互依存的,相互证明的关系,二者缺一不可,否则无论是只有1还是只有0,都没有了变化,只是一个死板的数了。参考老子的道德经,“有无相生,难易相成,长短相形,高下相倾,音声相和,前后相随”,结合这句话来理解二进制再好不过了。
void类型的作用:
规则1:任何类型可以转换为void类型,来显示的表明对该值的丢弃。
规则2:void类型不可以转换为其他类型,void指针除外。
用途:空,0,假,之间的区别?
“空”表示一种不确定或者不存在,不可以作为条件,也不可以给其他变量赋值为空。
0,可以表示为数字0,也可以在条件语句里表示假
假,逻辑变量,在条件语句中表示假。
举例:
if(条件为真)
执行语句;
if(条件为假)
不执行
if(条件为空)
报错!因为空不是一种明确的状态。
当我们想明确的表示该值不存在或者放弃该值的时候,可以将相应的值转换为void类型。
举例:
void fun1(int a); //该函数明确表示没有返回值,如果没有void,C语言默认返回int类型的值。
(void)(a=13); //明确的抛弃表达式a=3的值,默认a=3的值为右值3。
(void)0; //明确的将0的类型改为void,因为0可以在条件表达式中表示为假,也可以当作int类型给变量赋值,当0变为void类型后,这些都不可以了。
相关文章
- Http Get与Post的区别
- c#中var类型用法同dynamic,object区别
- array_map、array_walk的用法和区别
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf的区别(转载)
- python中几种队列Queue用法区别
- [转]div与span区别及用法
- JS Leetcode 179. 最大数 题解分析,sort a-b与b-a的区别,sort排序原理解析
- 【JS点滴】substring和substr以及slice和splice的用法和区别。
- AppSettings和ConnectionStrings的区别
- C#中控件Control的Paint事件和OnPaint虚函数的区别
- Web Farm和Web Garden的区别
- JAVA中字符串比较equals()和equalsIgnoreCase()的区别
- mybatis 中的 resultType 和 resultMap 的用法与区别
- malloc/free与new/delete的区别
- Python中read()、readline()和readlines()三者间的区别和用法
- hive—UNION ALL和UNION区别,以及性能最优用法
- yum和apt-get的用法和区别
- 浅析SQL中 in 与 exists 用法的区别及其各自执行流程、not in/not exists区别、sql优化应该如何选择in还是exists
- vue组件和插件的区别
- 关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法