|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
#include <stdio.h>
main()
{
char c1='\101',c5='116';
printf("c1=%c,c5=%c",c1,c5);
}
想知道为什么c5的输出结果是6啊?是因为溢出吗,ASCII码里没有字符116,所以溢出吗
实验了几遍,发现超出10的,c5的结果都是最后一位数
求大佬讲一下原理?
本帖最后由 风过无痕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 的字符;没有反斜杠的被当作是一串数字,赋值时只接收最后一个
|
|