LXMARCO 发表于 2019-11-9 01:40:56

关于ASCII码表的简单问题(课后习题)

在小甲鱼的一个课后习题中
printf("Print five characters:%c %c %c %c %c %c\n", 'F', '\105', 115, 104, 67);
‘F’是我将小甲鱼的数字改为了一个字符
如果‘\105’改为105 的话 输出的对应值是 I正确
我把105改为了‘\105’后输出值变成了E


想请教各位能否解释下转义字符查表的问题, 为什么我这里加了‘\’后会有变化呢?
谢谢!

jackz007 发表于 2019-11-9 02:24:56

本帖最后由 jackz007 于 2019-11-9 02:33 编辑

      转义字符 '\ddd' 里的 ddd 其实是八进制数, 8 x 8 x 1 + 8 x 0 + 5 = 69, 就是说,八进制的数值 105 对应的十进制数值是 69,而 ASCII 编码值为 69 的字符就是 'E'。而 ASCII 编码值为 105 的字符是 'i'。

LXMARCO 发表于 2019-11-9 03:03:46

jackz007 发表于 2019-11-9 02:24
转义字符 '\ddd' 里的 ddd 其实是八进制数, 8 x 8 x 1 + 8 x 0 + 5 = 69, 就是说,八进制的数值 10 ...

明白了,非常感谢
页: [1]
查看完整版本: 关于ASCII码表的简单问题(课后习题)