You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

打印'\0'字符和打印"\0"字符串在C语言中有什么区别?

核心区别

"\0"是C语言中的字符串常量,'\0'是字符常量,二者的类型和在IO操作下的输出行为完全不同:

  • "\0"本质是存储了两个连续'\0'字符(用户显式写的1个+字符串默认自动追加的结尾1个)的只读内存区域,作为参数传递时会退化为指向首地址的char*指针。
    当它被%s格式符匹配,或者出现在printf的格式串中时,printf的字符串处理逻辑会遇到\0就停止输出,不会把\0本身写入标准输出。所以你列的可接受写法最终输出只有'1'和'0'两个字符,刚好匹配评测要求的输出10。
  • '\0'本质是值为0的int类型常量(C语言中字符常量默认是int类型)。
    当它被%c格式符匹配,或者作为putchar的参数时,会被当做一个普通的ASCII字符,直接写入标准输出。所以你列的被拒绝写法最终输出是'1'、'0'、'\0'三个字符,多了一个空字符,不符合评测要求因此被拒。

内容的提问来源于stack exchange,提问作者Michael Pruglo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:09:01