C++语法中关于char类型变量的强调

2022.09.21
人应该有力量,揪着自己的头发把自己从困境沼泽里拔出来。

关于C++中char类型的强调

本质:char类型的变量存储的数据仍然是一个整数,又char类型占用一个字节,即这个整数在0~127之间。每个取值代表一个字符,对应规则由ASCII表规定。

对于char类型变量赋值

不考虑严谨性,我们可以认为一个char类型变量只存一个字符,所以

  • 赋数字(范围为一个字节)时对应ascll码的字符被赋给了这个变量。
#include
using namespace std;
int main(){
	char ch;
	ch=65; 
	cout<

C++语法中关于char类型变量的强调_第1张图片

  • 赋’字符’时如果输入多个字符,则发生覆盖,导致最后一位字符被存在变量里
#include
using namespace std;
int main(){
	char ch, a;
	ch='abcd'; 
	a='123';
	cout<

C++语法中关于char类型变量的强调_第2张图片

对于char类型变量的流输入输出

默认以键盘(cin)输入的任何数值看作字符而不是数字处理(在变量的内存里以对于ascll码值的方式进行存储)所以只有第一位被赋给变量。

#include
using namespace std;
int main(){
	char ch;
	cin>>ch;
	cout<

C++语法中关于char类型变量的强调_第3张图片

公孙川的 https://blog.csdn.net/qq_37500267/article/details/86160775,侵删

上面被丢弃的23仍存在于输入流

下面这个例子很好地展示了这个特性:

char n;
int s;
cin >> n >> s;
cout << n << endl << s;

当输入值为115时,输出结果为:

1
15
1
2

很明显,15被弃用在输入流中并随后被赋值给s(此时15被解释为数字了)。

示例 判断输入的单个数据是字母还是数字

#include
using namespace std;
int main(){
	char ch;
	cin>>ch;
	if(ch>='0'&&ch<='9') //ch的ascll值和0的ascll码值比较 
		cout<<"该字符为数字"<='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //字符区分大小写
		cout<<"该字符为字母"<

思考:如何判断输入数据是数字还是字母?

当char类型变量遇到算术运算符和比较运算符时

关于C++运算符的分类

[https://blog.csdn.net/weixin_59654772/article/details/126086690]:

参考我是一颗卷心菜同学的总结

此时,char类型变量参与这样的运算,均视为字符的ascll值被运算!
最后cout会自己根据变量的类型判断变量存储的值代表的是字符还是数字。

#include
using namespace std;
int main(){
	char a = 33, b = 34, c;
	int d = a + b;
	c = a + b;
	cout<

C++语法中关于char类型变量的强调_第4张图片

示例分析

char a;
cin>>a;
cout<
char a;
cin>>a;
a=a+32;
cout<

你可能感兴趣的:(C++语法基础,c++,开发语言)