0 、 ‘0‘ 、 “0“ 、 ’\0’ 区别

在说明这个问题前,首先要搞明白 什么是ASCII码值

不明白的看以下链接中的ASCII 字符代码表:

https://baike.baidu.com/pic/ASCII/309296/0/e850352ac65c103880a07b53bc119313b17e8941?fr=lemma&ct=single#aid=0&pic=e850352ac65c103880a07b53bc119313b17e8941

①    ‘0’    代表    字符0  ,对应ASCII码值为   0x30 (也就是十进制 48)

②    '\0'    代表     空字符(转义字符)【输出为空】, 对应ASCII码值为   0x00(也就是十进制 0), 用作字符串结束符

③     0    代表     数字0,  若把 数字0 赋值给 某个字符,对应ASCII码值为    0x00(也就是十进制0) 

④     “0”  代表    一个字符串,  字符串中含有 2个字符,分别是 '0' 和  '\0'   

下面补充说明(帮助理解)

①   char  ch_0 = ‘0’;                   // 字符0 赋值给一个字符,实际赋的 码值 为 0x30,十进制48

      std::cout << ch_0 << '\n';      // 输出的 是 码值0x30 对应的 字符 0, 界面上看到的是0

      std::cout << int(ch_0) << '\n';    // 输出的 是字符 ‘0’ 对应的码值  0x30,即十进制48  ,界面上看到的是 48

②   char  ch_0 =  '\0';                 // 字符‘\0' 赋值给一个字符,实际赋的 码值 为 0x00,十进制0

      std::cout << ch_0 << '\n';     // 输出的 是 码值0x00 对应的 空字符【NULL】, 界面上看到的是 空白,什么也看不见

      std::cout << int(ch_0) << '\n';    // 输出的 是字符 ‘\0’ 对应的码值  0x00,即十进制0  ,界面上看到的是 0

③   char  ch_0 = 0;                    // 数字0 赋值给一个字符,实际赋的是 码值

       std::cout << ch_0 << '\n';    // 输出的 是 码值0 对应的 字符,此处为 空白字符,即输出为空,界面上什么也看不见

      std::cout << int(ch_0) << '\n';    // 输出的 是码值  0x00,即十进制0  ,界面上看到的是0

④   char ch_0[ ] = "0";               // 字符串 “0” 初始化字符数组

      std::cout << sizeof(ch_0) << ‘\n’;     // 输出 ch_0 字节数, 界面显示 为2

      std::cout << ch_0[0] << '\n';             // 输出字符 ‘0’,界面上看到的是 0 

      std::cout << ch_0[1] << '\n';            // 输出字符 ‘\0’,界面上看到的是 空白

      std::cout << int( ch_0[0] )<< '\n';     // 输出字符 ‘0’ 对应的码值 0x30,界面上看到的是 48

      std::cout << int ( ch_0[1] )<< '\n';    // 输出字符 ‘\0’ 对应的码值 0x00,界面上看到的是 0

 

注:以上代码 若是想拷贝试试,可能需要做相应的调整。因为为了方便大家学习,我有些地方多加了空格,能看得更清楚些,有问题欢迎留言探讨。

总结:记住几点

① 用 数值 给 某个 字符变量 赋值时,相当赋 与该数字相同码值 所对应的字符

② 用 字符 给 某个 字符变量赋值时, 即 赋 字符本身

③ ‘\0’ 对应的 码值为0, 界面显示为 空白

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值