zoukankan      html  css  js  c++  java
  • c语言‘’ ,‘0’, “0” ,0之间的区别

       首先比较一下‘’和‘0’的区别。有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节。请翻开你的ASCII字符集表吧,一般在你的C语言教材的附录上,没有的话网上查查哦。请看第一个ASCII码,对是0,对应的字符是(Null),其实就是‘’,即空字符。判断一个字符串是否结束的标志就是看是否遇到‘’,如果遇到‘’,则表示字符串结束。而字符‘0’对应的ASCII码是48,48对应的十六进制数就是0x30,通常我们在编程的时候,用字符转化为数字的时候经常要用到,比如要将‘8’转换为数字8,在语句中这样写就可以了, 8+‘0’”。这里的8就是数字。

    部分ascii表:

    Bin Dec Hex 缩写/字符 解释
    0000 0000 0 00 NUL (null) 空字符
    0000 0001 1 01 SOH (start of handing) 标题开始
    0000 0010 2 02 STX (start of text) 正文开始
    0000 0011 3 03 ETX (end of text) 正文结束
    0000 0100 4 04 EOT (end of transmission) 传输结束
    0000 0101 5 05 ENQ (enquiry) 请求


    0011 0000     48         30             0 

    0011 0001     49         31             1 
    0011 0010     50         32             2 
    0011 0011     51         33             3 
    0011 0100     52         34             4 
    0011 0101     53         35             5 
    0011 0110     54         36             6 
    0011 0111     55         37             7 
    0011 1000     56         38             8 
    0011 1001     57         39             9

    字符‘0’和数字0的区别:前者是字符常量,后者是整形常量,它们的含义和在计算机中的存储方式截然不同。但是字符常量可以像整数一样在程序中参与相关运算。例如:‘9’-3;(结果:54,‘9’字符57,) 。哈哈,是不是柳暗花明又一村啊。

     结果为整形。

       接下来我们比较一下“0”和‘0’的区别。首先“0”是字符串常量,字符串常量是由一对双引号括起的字符序列。例如:“CHINA”,“I LOVE YOU”,“123”等都是合法的字符串常量。‘0’是字符常量,字符串常量和字符常量是不同的量。1:字符常量由单引号括起来;字符串常量由双引号括起来。2:字符常量只能是单个字符;字符串常量则可以含一个或多个字符。这里先介绍表达上的主要区别,在运用中还有存储空间的不同以及赋值方式的不同等等。这里只是抛砖引玉,具体可参考c语言相关书籍。 

    1.0 is an integer constant

    2.'' is a character constant

    3.NULL is a macro(宏) defined in several standard headers(标准头文件)

    4.nul is the name of the character constant. (这个貌似一般很少见把。。反正我没见过 = = )

    All of these are *not* interchangeable(不可交换使用)

    各自的用法如下:
    1.0 can be used anywhere, it is the generic symbol for each type's zero value and the compiler will sort things out.

    2.'' should be used only in a character context.

    3.NULL is to be used for pointers only since it may be defined as ((void *)0), this would cause problems with anything but pointers.

    4.nul is not defined in C or C++, it shouldn't be used unless you define it yourself in a suitable manner, like:

    #define nul ''

  • 相关阅读:
    Spring事件机制
    设计模式(07)——设计原则(2)
    设计模式(06)——设计原则(1)
    使用Feign发送HTTP请求
    设计模式(05)——组合和继承
    设计模式(04):接口和抽象类
    设计模式(03):面向对象与面向过程的区别与联系
    设计模式(二):面向对象及其特性分析
    设计模式(一):学习大纲
    Java8日期时间——LocalDateTime的使用以及相互转换
  • 原文地址:https://www.cnblogs.com/youxin/p/3226830.html
Copyright © 2011-2022 走看看