如已知的字符已知字符范围在-128到127或0到255之间。在进行字符算术时必须牢记这一点。为了更好地理解,让我们举一个例子。

// C program to demonstrate character arithmetic.
#include <stdio.h>
int main()
{
    char ch1 = 125, ch2 = 10;
    ch1 = ch1 + ch2;
    printf("%d\n", ch1);
    printf("%c\n", ch1 - ch2 - 4);
    return 0;
}

输出:

-121
ÿ 

因此%d说明符会导致打印整数值,而%c说明符会导致打印字符值。但需要注意的是,在使用%c说明符时,整数值不应超过127.
到目前为止一切顺利。

但对于c ++来说,它有点不同。

看看这个例子可以更好地理解。

// A C++ program to demonstrate character
// arithmetic in C++.
#include <bits/stdc++.h>
using namespace std;
int main()
{
    char ch = 65;
    cout << ch << endl;
    cout << ch + 0 << endl;
    cout << char(ch + 32) << endl;
    return 0;
}

输出:

一个
65
一个 

如果没有'+'运算符,则会打印字符值。但与'+'一起使用时,操作符表现不同。使用'+'运算符隐式将其转换为'int'。总而言之,在字符算术中,char变量到'char'的类型转换是显式的,而'int'则是隐式的。

C和C ++中的字符算法-IDC帮帮忙