萌新请求大佬解答疑惑!!!

请问,为什么我用devc++编译器编写的如下代码
#include <stdio.h>
int main()
{
printf("%c",'\48');
return 0;
}

得到的结果是“8”,而不是“”呢?

为啥你认为'\48'应该输出括号呢???

回答:你还别说,你这样写代码我也是头一回见到,要表示char类型,又采用了 转移符号,而且还是两个数字的转移符号,用法很高级呀;下面是分析过程:

正常使用, 48 的ASCII码值对应 0

img

采用转义字符的你的写法,输出确实为8

img


编译警告在这篇文章有提到:检查你的char数组的元素是否单个元素进行赋值,如char[n] = ‘a’,只能是一个元素。
https://blog.csdn.net/qq_43992949/article/details/106022299

,它应该是直接当作了转义字符进行处理,并且还只拿了最后一位作为转义字符的结果

img

img