'1'和1差了48

今天遇到了一行代码

x[y[i]-48]++;

是关于char类型的'1'和int类型的1的转换

刚开始没看懂,后来想可能是它们的位数差了48

验证代码如下

#include<iostream>

using namespace std;

int main()
{
char a='1';
int i=1;
int s;
s=a-i;
cout<<s<<endl;
return 0;
}

输出:48

也就是说char ‘1’比int 1大了48,借此可以实现两者的快速转换

posted @ 2019-10-21 17:19  大千世界没  阅读(1070)  评论(0)    收藏  举报