#include<iostream>
using namespace std;
int main()
{
cout <<"1 "<< 'M' << endl;//'M'输出字母本身,和数字不同
cout <<"2 "<< (int)'M' + 1 << endl;//输出其ASCII码值
cout << "3 "<<(char)'M' << endl;
/*(char)'M'输出字母本身 变量类型加字母的组合时变量类型一定要加括号*/
cout <<"4 "<< (int)'M' - 'N' << endl;//结果为77-78
cout <<"5 "<< 'M' - (int)'N' << endl;//结果为77-78
cout <<"6 "<< ((int)'M') - 'N' << endl;//结果为77-78
cout << "7 " << 'M' - 'N' << endl;//结果为77-78
cout <<"8 "<< (int)('M' - 'N') << endl;//结果为77-78
cout <<"9 "<< (int)('M' - 'N') + 1 << endl;//结果为77-78+0
cout <<"10 "<< 'M' + 1 << endl;//1直接与'M'的ASCII码值相加 计算结果为77+1
cout <<"11 "<< 'M' + '1' << endl;//'1'表示1的ASCII码值:49 计算结果为77+49
cout <<"12 "<< 'M' + char(1) << endl;//char(1)的ASCII码值为1 计算结果为77+1
cout <<"13 "<< (char)'M' + char(1) << endl;//计算结果为77+1
cout <<"14 "<< (char)'M' + 1 << endl;//计算结果为77+1
cout <<"15 "<< (char)('M' + 1) << endl;//计算结果为N
cout << "16 " << (char)('M' - 'N') << endl;
/*在C++中 其表示将'M'的ASCII码值与'N'的ASCII码值相加 得到174
然后将其强制转换为字符类型并输出 由于174不是任何一个可见字符的ASCII码值
所以这条语句会输出一个不可见的字符*/
cout << "17 " << 'M' + char('1') << endl;//char('1')的ASCII码值为:49 计算结果为77+1
system("pause");
return 0;
}
/*总结:1.当打印M时会报错
2.打印'M'时会打印出M 当'M'参与运算时会自动转化为ASCII码值进行运算
3.当打印(int)M时会报错
4.当打印(int)'M'时会打印其ASCII码值 即(int)可以强行将字母
转换为其ASCII码值
5.当打印 'M' + 1时 1直接与'M'的ASCII码值相加
6.(char)可以将字母强制转换为字符类型 特别地:
在C++中 (char)('M' - 'N')表示将'M'的ASCII码值与'N'的ASCII码值相加 得到174
然后将其强制转换为字符类型并输出 由于174不是任何一个可见字符的ASCII码值
则会输出一个不可见的字符
7.打印'1'时会打印出1
8.打印'M'+'1'时 '1'会转换成其ASCII码值进行计算 1的ASCII码值为49 结果为77+49*/