目录

前言

1. 发现“怪兽”

2. 不断升级

3. 究极变身模式​


前言

接下来跟大家分享一个转义字符八进制好玩的地方,可能这个地方困扰了我们很久,但是想明白后会觉得很有趣。

注意:'\xxx8xx'中8前面的数称为有效数字,8后面的数为无效数字。例如:'\111834'中的有效数字为3,无效数字为2。

1. 发现“怪兽”

在上图的运行结果中,我们可以发现'\80'的转义字符的写法是错误的,但是编译器并没有报错且还能运行起来,这就很有趣了。'\0'或者'\'(为1-3位数的八进制数),既然是八进制数,那么里面的\8明显是不合法的。

通过对运行结果的分析,可以发现,编译器是忽略了'\80'中的\8,最终输出的是字符'0'结果,这就十分好玩了。如果大家觉得奇怪,还可以看下面的图片与上面的ASCII码表对比一下。

2. 不断升级

通过分析运行结果,可以发现,结果是忽略了'\184'中的\18,只是展示了字符'4'的结果。为了验证是输出字符'4',而不是输出'\4'的八进制ASCII码值所对应的字符,我给出了如下代码和运行结果。

希望此处有掌声(doge)

3. 究极变身模式

图一 

 图二

图三

图四

  • 图一分析得知:在'\1824'中的8前面是有效数字,还是8后面有多少个无效数字,结果都是只是保留了字符'4'。
  • 图二分析得知:'\8'后面的无效数字最多有两个,如果超出了,编译器就报错。
  • 图三分析得知:'\111824'中的有效数字有三个,为111。但是不管有效数字有多少个,'\111824'中已经出现了非法数字,那么最终结果还是输出字符'4'。
  • 图四分析得知:'\1111824'中的有效数字为四个,为1111。编译器报错了,原因很简单,有效数字的个数只能三个。

喜欢的话,点个赞再走呗。

C语言的转义字符,八进制相关推荐

  1. C语言常用转义字符表 和 ASCII码表完整版

    C语言常用转义字符表 和 ASCII码表完整版 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 . 1 ...

  2. c语言转义字符表解析,C语言常用转义字符表

    <C语言常用转义字符表>由会员分享,可在线阅读,更多相关<C语言常用转义字符表(4页珍藏版)>请在人人文库网上搜索. 1.精选文库 C语言常用转义字符表 转义字符 含义 ASC ...

  3. java转义字符包括元字符_语言的转义字符及正则表达式的转义字符的表示

    Java语言中的转义字符及正则语法中的转义字符在Java字符串中的表示. ASCLL中的转义字符共有14个: \o 空字符(NULL) 00H/0 \n 换行符(LF) 0AH/10 \r 回车符(C ...

  4. [C语言入门] 转义字符表

    C语言的转义字符表常让新手头疼,这里附上转义字符表,并试着解释其字母的含义(个人推测,不一定完全正确),以便记忆. ​(图片来自@code_流苏) \a alarm(闹钟:警报)的首字母 \b bac ...

  5. C语言常用转义字符表

    C语言常用转义字符表 转义字符: 转义字符分为一般转义字符.八进制转义字符.十六进制转义字符. 一般转义字符:背诵\0. \n. \'. \". \\. 八进制转义字符:  '\141' 是 ...

  6. C语言十六进制数转八进制(十进制作为中介)(附完整源码)

    C语言十六进制数转八进制 C语言十六进制数转八进制完整源码 C语言十六进制数转八进制完整源码 #include <stdio.h> /// for printf() and fgets() ...

  7. C语言十六进制转八进制(附完整源码)

    C语言十六进制转八进制 C语言十六进制转八进制完整源码 C语言十六进制转八进制完整源码 #include <stdio.h>int main() {#define MAX_STR_LEN ...

  8. C语言十六进制转换为八进制(附完整源码)

    十六进制转换为八进制 C语言十六进制转换为八进制完整源码 C语言十六进制转换为八进制完整源码 #include <stdio.h>int main() {#define MAX_STR_L ...

  9. C语言二进制转换为八进制(附完整源码)

    C语言二进制转换为八进制 C语言二进制转换为八进制完整源码 C语言二进制转换为八进制完整源码 #include <stdio.h>// Function that returns the ...

最新文章

  1. review what i studied `date` - 2017-4-12
  2. oracle学习笔记三
  3. 不同进制数的表示方法
  4. linux 依赖关系解析失败,关于linux依赖关系出错的解决
  5. 使用window.performance对应用性能监测
  6. 我要做 Android 之面笔试
  7. ADS笔记 | 史密斯圆进行阻抗匹配,并用ADS仿真结果
  8. 串行通信的电子密码锁设计全套资料
  9. 为什么这么好玩?领略《塞尔达传说:旷野之息》精妙设计(上)
  10. DirectShow之视频渲染
  11. Sentaurus入门(2):器件仿真
  12. 计算机sci二区期刊,图像处理的sci二区期刊有哪些
  13. 计算机原理(3)主板上的CPU,存储器,南桥北桥等的总结
  14. [论文解读]Bayesian Generalized Kernel Inference for Terrain Traversability Mapping
  15. 影音视频播放中常见八问题
  16. 升腾c10,华为ct3100安装nextcloud,KodExplorer网盘
  17. 微信小程序原生tabBar基础模板
  18. (老文章)Box2D新手入门顺阶教程
  19. 深度学习的学习记录(五)
  20. 英语学习的六大黄金原则

热门文章

  1. ST_Geometry 的空间运算函数
  2. html转换markdownpad,MarkdownPad2导出HTML支持[TOC]
  3. 【网络协议从入门到底层原理】【06】数据链路层
  4. 财务业务:会计凭证的审核
  5. html图片查看代码实现,如何用HTML5实现图片预览和查看原图的功能
  6. 安装完搜狗输入法发现输出的是繁体字。
  7. 怎么使用ping命令进行连通性测试
  8. 什么是android应用程序未安装,Android 解决应用程序未安装的三种方法
  9. python中调用π的值_python如何调用math函数库求π值
  10. 【C语言】五彩斑斓的颜色