鱼C论坛

 找回密码
 立即注册
查看: 779|回复: 4

[已解决]新手求助,大佬们帮帮忙

[复制链接]
发表于 2020-11-18 17:50:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下:

#include <stdio.h>
main()
{
        char c1='\101',c5='116';
        printf("c1=%c,c5=%c",c1,c5);
}

想知道为什么c5的输出结果是6啊?是因为溢出吗,ASCII码里没有字符116,所以溢出吗
实验了几遍,发现超出10的,c5的结果都是最后一位数
求大佬讲一下原理?
最佳答案
2020-11-19 00:39:40
本帖最后由 风过无痕1989 于 2020-11-19 00:41 编辑

输入:c1='\101',c5='116'
输出:c1 = A,c5 = 6
输入:c1='\126',c5='127'
输出:c1 = V,c5 = 7
输入:c1='\131',c5='138'
输出:c1 = Y,c5 = 8
输入:c1='\132',c5='149'
输出:c1 = Z,c5 = 9
输入:c1='\133',c5='151'
输出:c1 = [,c5 = 1
输入:c1='\134',c5='162'
输出:c1 = \,c5 = 2
输入:c1='\135',c5='173'
输出:c1 = ],c5 = 3

由上可以看出:有反斜杠的才被当作是字符,且被转义成为比实际上ASCII码小 36 ~ 42 的字符;没有反斜杠的被当作是一串数字,赋值时只接收最后一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-18 18:11:50 | 显示全部楼层
本帖最后由 jackz007 于 2020-11-18 18:14 编辑
  1.         char c5 = '116'
复制代码

        没有什么原理可讲,这本身就是一种错误的表达,估计编译器在编译的时候,留取了 '116' 中位于最后的字符 '6' 作为了 c5 的数值。你也可以试一下其它组合,比如,char c5 = '399' 看看是不是这样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-18 19:03:58 | 显示全部楼层
jackz007 发表于 2020-11-18 18:11
没有什么原理可讲,这本身就是一种错误的表达,估计编译器在编译的时候,留取了 '116' 中位于最 ...

只要是超过了10的都是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-18 19:55:41 | 显示全部楼层
本帖最后由 jackz007 于 2020-11-18 19:57 编辑
育人三代 发表于 2020-11-18 19:03
只要是超过了10的都是这样


      和超过 10 没有关系,除了有转义字符引导,单引号中只要多于 1 个字符都是错误的。不符合规则的写法不具有可推广性,建议楼主不要过于在这方面计较。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 00:39:40 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-11-19 00:41 编辑

输入:c1='\101',c5='116'
输出:c1 = A,c5 = 6
输入:c1='\126',c5='127'
输出:c1 = V,c5 = 7
输入:c1='\131',c5='138'
输出:c1 = Y,c5 = 8
输入:c1='\132',c5='149'
输出:c1 = Z,c5 = 9
输入:c1='\133',c5='151'
输出:c1 = [,c5 = 1
输入:c1='\134',c5='162'
输出:c1 = \,c5 = 2
输入:c1='\135',c5='173'
输出:c1 = ],c5 = 3

由上可以看出:有反斜杠的才被当作是字符,且被转义成为比实际上ASCII码小 36 ~ 42 的字符;没有反斜杠的被当作是一串数字,赋值时只接收最后一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表