📜  C和C++中的字符算术

📅  最后修改于: 2021-05-25 21:15:38             🧑  作者: Mango

众所周知,字符范围介于-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基础课程》。