首页 > 其他 > 详细

C连载9-char类型详解

时间:2020-06-22 00:21:08      阅读:107      评论:0      收藏:0      [点我收藏+]

?一、char类型

1.char类型存储的是整数而不是字符,例如:在ASCII中,65代表A;

2.标准ASCII范围为0-127;商用统一编码Unicode创建一个全球字符合集;

3.注意点:C语言把1字节定义为char类型占用的位数,因此在16位,32位,64位系统中都是可以用char类型的。有敌意i但值得注意就是在Java中,char类型是占两个字节的,而byte类型才会占用一个类型;

4.声明方式:

声明一个字符,我们需要使用单引号将其引用起来。不能使用双引号

我们可以这样char a = 65;但是并不推荐这样写,因为在跨系统的时候,可能会因为编码形式的不同,导致棘手的问题。

(1)注意点:char类型在C语言中将字符常量视为int类型,而不是char类型

  char a = A; 

  char b = DABC; 

  printf("%c\n",a); 

   printf("%c",b);

 技术分享图片

 

可以看出,变量b可以存储四个字符,但是当打印的时候我们只会打印出后面的八位,即C,不会打印前面,这种形式也用于“变位”操作。

5.非打印字符

有些字符比如:换行、空格等特殊字符无法打印出,我们有两个方式进行

(1)使用ASCII码,比如:蜂鸣字符就是7,可以这样写char a = 7;

(2)使用转义序列

转义序列

含义

\a

警报(ANSI C)

\b

退格

\f

换页

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\\

反斜杠

\‘

单引号

 

转义序列

含义

\"

双引号

\?

问号

\0oo

八进制(oo必须是有效的八进制数字,即每个o可表示

\xhh

十六进制(hh必须是有效的十六进制数,即每个h可表示0~f中的一个数字)

(3)C90中添加了警报声音,也就是\a,但是在某些系统中是不起作用的,C规定?:警报字符是不改变活跃位置的(这个活跃位置,我们可以理解为光标)

(4)八进制其实可以省略前面的0?,比如:‘\007‘,可以写为‘\07‘,甚至可以写为‘\7‘;

(5)整数常量的例子

类型

十六进制

八进制

十进制

char

\0x41

 \0101

N.A.

int

0x41

0101

65

unsigned int

0x41u

0101u

65u

long

0x41L

0101L

65L

unsigned long

0x41UL

0101UL

65UL

long long

0x41LL

0101LL

65LL

unsigned long long

0x41ULL

0101ULL

65ULL

(6)使用ASCII码时,注意数字和数字字符的区别,?例如:字符4对应的ASCII码是52,’4?‘表示字符4,不是数值4

(7) ASCII码和转义字符相比,推荐使用转义字符,因为这样可移植性强,且?易于识别。

(8) 如果要使用ASCII码,为何要写成\032,而不是032,首先’\032‘能够更加清晰的表达程序员?使用字符编码的意图,并且这样写是可以嵌套到字符串中去的,比如:printf("Hello!\007\n")?

三、源码:

D9_1_TypeOfchar.c

https://github.com/ruigege66/CPrimerPlus/blob/master/D9_1_TypeOfchar.c

https://github.com/ruigege66/CPrimerPlus/blob/master/D7_toobig.c

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包、

技术分享图片

 

 

C连载9-char类型详解

原文:https://www.cnblogs.com/ruigege0000/p/13174734.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!