写点什么

【C 语言】char 关键字

作者:謓泽
  • 2022-11-05
    江西
  • 本文字数:1592 字

    阅读完需:约 5 分钟

🚩write in front🚩   

🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

🏅2021 年度博客之星物联网与嵌入式开发 TOP5~2021 博客之星 Top100~阿里云专家博主 & 阿里云星级博主~掘金⇿InfoQ~51CTOP 创作者(创作新人榜 No.10)~[CSDN]周榜 172﹣总榜 955 ⇿ 全网访问量 35w+🏅

🆔本文由 謓泽 原创 发布在 InfoQ 如需转载还请通知⚠

📝个人主页-InfoQ - 促进软件开发及相关领域知识与创新的传播-极客邦

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

char  ⇿ 字符型

⒈描述 ⇨ char 字符型变量是用来存储字符常量的变量,字符型变量在内存空间所占字节大小为 1 个字节,%c 所对应的是打印字符的格式数据,有符号(signed)的 char 取值范围是『 (负)128 ~ 127』无符号字符 unsigned char 的取值范围是『0~255』

⒉作用 ⇨ 定义一个字符型变量的方法是使用关键字 char,例如: char str = 'A';

⒊注意 ⇨ 字符数据在内存中存储的是字符的 ASCll 码,即使是一个无符号整数,其形式与整数的存储形式一样,因为在 C 语言的字符型数据与整形数据之间通用。

⒋实际上字符型是被称之为整形字符类型('单引号')如果不相信的话,你可以用 sizeof 关键字求下单引号字面值、常量看下它所在的字节大小是不是一个整形(④字节)的。

⒌拓展知识点 ⇨ 相信学习过 C++语言的小伙伴应该知道在 C++语言当中它还是一个字节的。

#include <stdio.h>int main(void){	char a = 'a';	printf("%c\n", a);	return 0;}
复制代码

🉑提醒一个新手容易所犯下的错误-字符也是区分大小写的。

#include <stdio.h>int main(void){	char ch = 'A';	printf("%d\n", ch);	return 0;}
复制代码

🍊代码解析✔例如 ASCll 码中整数 65 代表大写字母 A。因此,存储字母 A 当中实际上存储的是整数 65 的值。当然,小写的 A 在 ASCll 码当中整数 97 代表小写字母 a。

🍏拓展层面✔数据类型中 char 是整数类型。同时也是一种特殊的类型字符,这是因为:可以用单引号表示字符常量如→'A'、'8',单引号' '也是一个字符。

🍅注✔ 在数据类型 char 当中的字符'1'和阿拉伯数字的①是不一样的。字符是字符,阿拉伯数字是整数,示例代码如下所示👇

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){	char a = '1';	printf("%d", a);}
复制代码

🖍运行结果49 

📝解释⇢ASCll 码的字符 1 对应着十进制的 49,因为我们这里的是格式符是 %d 所以应该是字符转换十进制的形式

📑拓展知识点→我们可以通过一个程序看下 char 类型数字的 1 和 char 类型单引号的'1'是否是相等的。

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){	char a = '1';	char b = 1;	printf("a = %d\n", a);	printf("b = %d\n", b);	if (a == b)		printf("YES\n");	else		printf("No\n");	return 0;}
复制代码

运行如下🖊

a  =  49

b  =  1

No

★上述代码总结就是字符类型'1'和整数类型也就是阿拉伯数字的①是不相等的。字符类型‘1’用 ASCll 码转换成数字比较的话它是④⑨的整形数字。

🍈题外知识点如下⇲ 假设以 signed char 为例。

000 0000 ⇢ 其中最高比特位是符号位『红色位符号位』从而意为着只有⒎个数值位。

假设,以原码位标准如下↓

111 1111  ⇥  -127

111 1111  ⇥  +127

1 → 符号位表示负数0 → 符号位表示正数。负数是因为 char 实际上实际也是整形类型,而且是有符号的那么必然会出现负数的。

注⇢负数以补码为标准,正数原码、反码、补码、表达都是一样的。

📝说明⇢ char 表示为负数也就是有符号的时候如下👇表示的数字有 2 的七次方 2^7=128 个 ,从 -127~-(负)0

其中-(负)0 的原码是→1 000 0000  补码是→1 0000 0000,多出了一位比特位。

由于 char 只取 ⒏位,所以截断后变为 0000 0000,这与+0 所表示的数是一样的,所以为了不能浪费 1000 0000 这个数值,我们规定用 1 000 0000 这个位来表示 -128 的数字。

发布于: 刚刚阅读数: 4
用户头像

謓泽

关注

一句话介绍下自己~ 2022-01-29 加入

谁也不知道旅途的终点是怎么样的 现在只不过是刚启航⛳ 便要全力以赴!终点必将是星辰🌠大海🌊 2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]

评论

发布
暂无评论
【C语言】char 关键字_11月月更_謓泽_InfoQ写作社区