数字加减字符 '0' 所得结果的区别

请问c语言里面,加 '0' 和 减 '0'有什么区别呢?

    while (t != 0) {
        remainder = t % 16;
        t = t / 16;
        if (remainder <= 9 && remainder >=0)
        a[i] = remainder + '0';
        else a[i] = remainder - 10 + 'A';
        i++;
    }

这里的remainder在加 '0'后我才能得到理想的数字结果,最开始我写的减 '0' ,在devc++里运行出来是一个汉字

说明你还是不理解到底什么是char,建议先回去复习char的相关概念和定义
简单来说,char存的是一个字符的ascii码,比如0的ascii码是48
而数字0的值本身就是0
如果你想把一个'0'变成0,那就减掉'0',也就是减掉48,反之加上'0'
0+'0'='0'
'0'-'0'=0
1+'0'='1'
'1'-'0'=1
以此类推