(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类型后,这些都不可以了。

(void)0和0的区别及用法的更多相关文章

  1. c语言‘\0’ ,‘0’, “0” ,0之间的区别

    首先比较一下‘\0’和‘0’的区别.有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节.请翻开你的ASCII字符集表吧,一般在你的C语言教材的附录上, ...

  2. bootstrap 2.3版与3.0版的使用区别

    bootstrap 2.3版与3.0版的使用区别 bootstrap已经推出了3.0的新版,看起来2.3.x版本也不会再更新了.那么bootstrap 2.3版与3.0版的区别在哪里呢?下面我们就来介 ...

  3. HTTP详解(3)-http1.0 和http1.1 区别

    HTTP详解(3)-http1.0 和http1.1 区别 分类: 网络知识2013-03-17 16:51 1685人阅读 评论(0) 收藏 举报   目录(?)[+]   翻了下HTTP1.1的协 ...

  4. os.getcwd()、sys.path[0]、sys.argv[0]和__file__的区别,终于弄清楚了

    os.getcwd().sys.path[0].sys.argv[0]和__file__的区别 要分清这几个的区别与使用条件,实际测试一下是最准确的. 设计测试方法: 一个主模块用来运行,一个子模块用 ...

  5. C/C++语言中NULL、'\0’和0的区别

    注:本文参考了http://blog.csdn.net/mylinx/article/details/6873253及书籍<征服C指针>([日]前桥和弥著). NULL.'\0'和0的值是 ...

  6. [2011-3-9 12:59 ]As3.0中的位图(Bitmap/BitmapData)用法

    1.位图使用(模糊)滤镜 //创建一个矩形区域的BitmapData var bmd:BitmapData = new BitmapData(80, 30, false, 0xefefef); //画 ...

  7. 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...

  8. 127.0.0.1 localhost 0.0.0.0 回环地址区别

    127.0.0.1:一般认为是本机ip,这个没错.但是本机ip不只是 127.0.0.1 而是所有回环地址. 回环地址: 包括127.0.0.1在内的 所有 指向本机的地址.范围是  127.0.0. ...

  9. php中0与’0’的区别

    首先php中0与'0',转化后值相等,但是类型不同: php是一种弱类型的语句,他的变量.字符定义其实并不十分规范,比如 $a = '4′;我们可以说这个$a是一个字符,但是他又可以直接进行数字的加减 ...

随机推荐

  1. ecmall用户登录后自动退出解决方法

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. Netty Channel 接口名词理解

    1.Channel channel 是负责数据读,写的对象,有点类似于老的io里面的stream.它和stream的区别,channel是双向的,既可以write 也可以read,而stream要分o ...

  3. UIControl的子类UISwitch, UISegmentedCntrol, UIPageControl详解

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  4. JAVA Date超强工具类,可直接取代util.Date使用

    package net.maxt.util; import java.text.DateFormat; import java.text.ParseException; import java.tex ...

  5. 图像处理标准图像lena的故事图The Lenna Story behind image processing

    The Lenna Story - www.lenna.org   Imaging Experts Meet Lenna in Person Yes, it's true! Lenna attende ...

  6. 关于Javascript你可能不知道的事

    NaN表示一个不能产生正常结果的运算结果.它不等于任何值,包括它自己.可以用isNaN(number)来检测. 同Java中的字符串一样,JS中的字符串是不可变的.也就是说一旦字符串被创建,就无法改变 ...

  7. [C#.NET] X509 數位電子簽章

    摘自: http://www.dotblogs.com.tw/yc421206/archive/2012/06/30/73140.aspx 在上篇[C#.NET] 字串及檔案,利用 RSA 演算法加解 ...

  8. JVisualVM简介与内存泄漏实战分析

    JVisualVM简介与内存泄漏实战分析 学习了:https://blog.csdn.net/kl28978113/article/details/53817827

  9. winrar X64 win10 破解

    破解方法, win10 64位 复制下面内容到 RarReg.key 文件 RAR registration datawncnUnlimited Company LicenseUID=1b064ef8 ...

  10. css换行缩进

    1.换行缩进 <div id="alertiframe"> <span id="closeiframe">×</span> ...