众所周知,字符范围介于-128到127或0到255之间。在进行字符算术时必须牢记这一点。为了更好地理解,让我们举个例子。
C
// C program to demonstrate character arithmetic.
#include
int main()
{
char ch1 = 125, ch2 = 10;
ch1 = ch1 + ch2;
printf("%d\n", ch1);
printf("%c\n", ch1 - ch2 - 4);
return 0;
}
C++
// A C++ program to demonstrate character
// arithmetic in C++.
#include
using namespace std;
int main()
{
char ch = 65;
cout << ch << endl;
cout << ch + 0 << endl;
cout << char(ch + 32) << endl;
return 0;
}
输出:
-121
y
因此,%d说明符导致要打印一个整数值,%c说明符导致要打印一个字符值。但是必须注意,在使用%c说明符时,整数值不应超过127。
到现在为止还挺好。
但是对于C++,它的作用有点不同。
看这个例子,以更好地理解。
C++
// A C++ program to demonstrate character
// arithmetic in C++.
#include
using namespace std;
int main()
{
char ch = 65;
cout << ch << endl;
cout << ch + 0 << endl;
cout << char(ch + 32) << endl;
return 0;
}
输出:
A
65
a
如果没有’+’运算符符,则会打印字符值。但是,当与“ +”运算符一起使用时,其行为会有所不同。使用’+’运算符会将其隐式转换为’int’。综上所述,在字符算术中,将char变量类型转换为’char’是显式的,而将’int’类型转换为隐式的。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。