‘\0’和‘0’

共同点:都是字符

不同点:'\0'对应的ASCII码是0,是ASCII码表中的第一个字符,即空字符;判断一个字符串是否结束的标志就是看是否遇到‘\0’。

‘0’对应的ASCII码是48,48对应的十六进制数就是0x30。

“0”和‘0’

“0”是字符串常量,字符串常量是由一对双引号括起的字符序列。字符串常量可以含一个或多个字符。

‘0’是字符常量,字符常量由单引号括起来。字符常量只能是单个字符。

关于“以0结束”的问题:

char s[4] = {‘A’, ‘B’, ‘C’, ‘0’};   是字符数组,不是字符串

char s[5] = {‘A’, ‘B’, ‘C’, ‘0’, 0}; 既是字符数组,也是字符串

char s[5] = {‘A’, ‘B’, ‘C’, ‘0’}; 既是字符数组,也是字符串

char s[5] = ”ABC0”;   <=>  char s[5] = {‘A’, ‘B’, ‘C’, ‘0’};   <=>  char s[5] = {‘A’, ‘B’, ‘C’, ‘0’, 0};

//完整代码见下面:

char c1[4] = {'A', 'B', 'C', '0'};
    char c2[5] = {'A', 'B', 'C', '0', 0};
    char c3[5] = {'A', 'B', 'C', '0', '\0'};
    char c4[5] = {'A', 'B', 'C', '0'};
    char c5[5] = "ABC0";

//从下面的结果可以看出,2 3 4 5 是完全等价的

  

ASCII码     十六进制      字符

48               0x30     数字字符‘0’

#include<stdio.h>
#include<string.h>void printByInt(char c[], int count){int i;//printf("%d\n", sizeof(c));for(i = 0; i < count; i++){printf("%d ", c[i]);}printf("\n");
}void printByChar(char c[], int count){int i;for(i = 0; i < count; i++){printf("%c ", c[i]);}printf("\n");
}
void main(void){char c1[4] = {'A', 'B', 'C', '0'};char c2[5] = {'A', 'B', 'C', '0', 0};char c3[5] = {'A', 'B', 'C', '0', '\0'};char c4[5] = {'A', 'B', 'C', '0'};char c5[5] = "ABC0"; printf("output by int: \n");printByInt(c1, sizeof(c1));printByInt(c2, sizeof(c2));printByInt(c3, sizeof(c3));printByInt(c4, sizeof(c4));printByInt(c5, sizeof(c5));printf("\n");printf("output by char:\n");printByChar(c1, sizeof(c1));printByChar(c2, sizeof(c2));printByChar(c3, sizeof(c3));printByChar(c4, sizeof(c4));printByChar(c5, sizeof(c5));
}

C语言‘\0’和0和‘0’相关推荐

  1. C# 语言规范_版本5.0 (第10章 类)

    1. 类 类是一种数据结构,它可以包含数据成员(常量和字段).函数成员(方法.属性.事件.索引器.运算符.实例构造函数.静态构造函数和析构函数)以及嵌套类型.类类型支持继承,继承是一种机制,它使派生类 ...

  2. mysql 线程池源码模块_易语言Mysql线程池2.0模块源码

    易语言Mysql线程池2.0模块源码 易语言Mysql线程池2.0模块源码 系统结构:GetThis,初始化,关闭类线程,线程_测试,其他_附加文本,连接池初始化,取mysql句柄,释放mysql句柄 ...

  3. c语言stdio中null的值,C/C++编程笔记:C语言NULL值和数字 0 值区别及NULL详解

    原创 程序员无言 2020-07-01 在学习C语言的时候,我们常常会碰到C语言NULL值和数字 0 ,很多小伙伴搞不清楚他们之间的一个区别,今天我们就了解一下他们之间的区别,一起来看看吧! 先看下面 ...

  4. C语言变长数组data[0]【总结】

    C语言变长数组data[0][总结] 1.前言 今天在看代码中遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在li ...

  5. C语言试题三之计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5))

    1 .题目 请编写函数function,它的功能是:计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+-+(1+2^(0.5)+3^(0.5)+-+n^(0.5)) ...

  6. Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0

    Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...

  7. VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序)

    VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序) Visual C++ 6.0简称VC或者VC6.0,是微软1998年推出的一款C/C++ IDE,界面友好,调试功能强大.VC6. ...

  8. C语言求ax2+bx+c=0的解,解一元二次方程

    看了好多别人的代码真无语了,要么就是考虑不全,要么就是报错,写之前能不能考虑一下,多带几组数据跑一下呀!!! 总结:C语言比python麻烦太多了 #include <stdio.h> # ...

  9. c语言电话簿管理系统的,C语言 电话簿管理系统VC++6.0运行通过

    <C语言 电话簿管理系统VC++6.0运行通过>由会员分享,可在线阅读,更多相关<C语言 电话簿管理系统VC++6.0运行通过(16页珍藏版)>请在人人文库网上搜索. 1.*电 ...

  10. 梯形图调用c语言编写程序,简单使用C语言写梯形图精简V2.0.pdf

    简单使用C语言写梯形图精简V2.0 C语言实现梯形图写法 1: AND 2: LDI 3: ANDB 4: ANDP 5: ORB 6: C1 7: T0 8: MPS1 9: LDF 10-1: M ...

最新文章

  1. iScroll.js 用法参考 (share)
  2. 解决 OCFS2 不能自动挂载 提示 o2net_connect_expired
  3. MySQL知识点复习
  4. 方舟子:如何避免学术不端行为(zz)
  5. FATAL ERROR in native method: JDWP No Transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_IN,ec
  6. 《集体智慧编程》第九章
  7. STM32F103ZE单片机在WWDG窗口看门狗的EWI中断中喂狗导致系统复位的原因及解决办法(中断函数重入问题)
  8. javaee 第五周作业
  9. OAF_VO系列3 - Binding Style绑定方式
  10. python文件怎么打开_py文件怎么打开?
  11. CSS实现单行、多行文本溢出显示省略号(…)
  12. Eclipse反编译插件 Enhanced Class Decompiler
  13. 传输层安全协议TLS/SSL
  14. 1427: 数字转换
  15. Android技术点滴记录
  16. hdu 1429 胜利大逃亡(续)
  17. 超详细,如何不用任何第三方软件实现电脑与手机文件传输
  18. 16位调色板和32位调色板_设计系统的调色板第一部分
  19. 北航c语言程序设计大一期末题库,北航2016C语言|程序设计题七
  20. 7PTA7-6 结伴同行去秋游

热门文章

  1. java内存释放_如何释放Java中的内存?
  2. java生产消费kafka消息
  3. 一款好用的开源的 macOS 压缩工具
  4. 海天注塑机弘讯T/A系列采集方案
  5. OpenWrt获取网关IP
  6. 青岛市城阳区鸿蒙思维怎么样,青岛市发展潜力最大的区,不是市南、城阳,也不是即墨、崂山...
  7. 用flashCS6写的制作画板的代码
  8. Cadence OrCAD Capture 原理图单元件多符号库创建方法图文教程
  9. EditPlus技巧集锦
  10. 计算机专业求职自荐书,计算机学专业求职自荐书范文