与char变量的再次会晤
#char型变量+ASCII码+字符
#坚持看完,巩固字符的学习
这次我想说的是,有关char变量与ASCII码以及参与数学运算和逻辑运算的关系。
这次我请来了ASCII码,才得以顿悟赋值给字符型变量单个字符和ASCII码(数字)的关系。终于从懵逼中解脱。
ASCII码分为控制字符和打印字符,这次与char型打交道,我请来了ASCII码中的打印字符。(因为我跟控制字符从来不熟)
这里我来统一几个概念:(一定要带着这些概念读下去。)
1 字符: 下面提到的字符都是打印字符。
2 赋ASCII码值: 给char型赋值时,分两种,一种是赋单个字符,另一种是赋数字,这里的赋数字,我称为赋ASCII码值。
ASCII码的打印字符
ASCII码中的打印字符包括三部分:
1 符号(33个):~!@#$%^&()_±={}:"<>?[];’,.|/* + 空格 + 第127个字符。
2 字母(大小写 52个):26个英文字母的大小写。
3 数字(10个):0~9
以上每个字符都对应一个ASCII码,这些ASCII码从32~127。
其中最为常用的是数字和字母的ASCII码,需牢记。
为了方便,我特意制了个表格如下(其实是懒的翻ASCII码表)
字符 | ASCII码 |
---|---|
0 ~ 9 | 48 ~ 57 |
A ~ Z | 65 ~ 90 |
a ~ z | 97 ~ 122 |
分析、理解
比如:
char x = '1'; //1
printf("%c\n",x); //2
x+=1; //3
printf("%c\n",x); //4
char x = 32; //1
printf("%c\n",x); //2
x+=1; //3
printf("%c\n",x); //4
//1
给char变量赋值,第一段代码赋的是单个字符 1,存入到x中的值是字符1。
第二段代码赋的是ASCII码值 32,存入到x中的值是ASCII码32对应的字符(空格)。
//2
做输出操作,输出都是 %c 格式的值。
第一个输出的是单个字符 1
第二个输出的是ASCII码对应的字符
//3
进行运算+1
第一个使用字符1对应的ASCII码值49+1。
第二个使用ASCII码32的值+1。
//4
第一个输出字符1使用ASCII码值+1运算后的ASCII码值对应的字符,但是这里无法显示(//输出的其实是控制字符部分的字符,无法显示。)
第二个输出ASCII码值+1运算后对应的字符(英文的叹号) " ! "
总结
由此得知,当给一个字符变量(char型)x 赋值时,如果赋的值是单个字符,则存入到x的是字符对应的ASCII码,如果赋的值是ASCII码值,则存入的是这个ASCII码值。
逻辑算数运算时使用ASCII码参与运算,输出字符时输出ASCII码对应的字符。