c语言的简单的问题,发现了个有趣的问题,关于5+'5'和5-'5'!

我是新学c语言的今天发现了个问题。。

#include<stdio.h>
main(){
int i;
i=getchar();
i=i+'5';
printf("%d",i);
}

当i=5的时候,它的输出结果为:106

代码改为:

#include<stdio.h>
main(){
int i;
i=getchar();
i=i-'5';
printf("%d",i);
}

同样是i=5的时候 5-'5'=0

为什么他们相加的时候(5的ascii码(53)+(53))=106,减去的时候却是运算 5-5=0 这样运算,希望各位大佬给个答案,给我讲解一下。谢谢。运行环境是vc++6.0。。。

什么5-5,不应该是53-53吗