c语言中(char)的用法,c语言中char的用法是什么意思.docx

253b171540df25e1b84436cbe50dfc72.gifc语言中char的用法是什么意思.docx

C语言中CHAR的用法是什么意思C语言是计算机软件领域非常经典的编程语言,C语言中CHAR的作用有哪些你了解吗。下面学习啦小编就跟你们详细介绍下C语言中CHAR的用法,希望对你们有用。C语言中CHAR的用法C语言中CHAR的用法简介字符型CHAR用于储存字符CHARACTER,如英文字母或标点。严格来说,CHAR其实也是整数类型INTEGERTYPE,因为CHAR类型储存的实际上是整数,而不是字符。计算机使用特定的整数编码来表示特定的字符。美国普遍使用的编码是ASCIIAMERICANSTANDARDCODEFORINATIONINTERCHANGE美国信息交换标准编码。例如ASCII使用65来代表大写字母A,因此存储字母A实际上存储的是整数65。注意许多IBM大型机使用另一种编码EBCDICEXTENDEDBINARYCODEDDECIMALINTERCHANGECODE扩充的二进制编码的十进制交换码不同国家的计算机使用的编码可能完全不同。ASCII的范围是0到127,故而7位BIT就足以表示全部ASCII。CHAR一般占用8位内存单元,表示ASCII绰绰有余。许多系统都提供扩展ASCIIEXTENDEDASCII,并且所需空间仍然在8位以内。注意,不同的系统提供的扩展ASCII的编码方式可能有所不同许多字符集超出了8位所能表示的范围例如汉字字符集,使用这种字符集作为基本字符集的系统中,CHAR可能是16位的,甚至可能是32位的。总之,C保证CHAR占用空间的大小足以储存系统所用的基本字符集的编码。C语言定义一个字节BYTE的位数为CHAR的位数,所以一个字节可能是16位,也可能是32位,而不仅仅限于8位。C语言中CHAR的用法声明字符型变量字符型变量的声明方式和其它类型变量的声明方式一样CHARGOODCHARBETTER,BEST以上代码声明了三个字符型变量GOOD、BETTER,和BEST。C语言中CHAR的用法字符常量与初始化我们可以使用以下语句来初始化字符型变量CHARCHA这个语句把CH的值初始化为A的编码值。在这个语句中,A是字符常量。C语言中,使用单引号把字符引起来就构成字符常量。我们来看另外一个例子CHARFAIL/声明一个字符型变量/FAILF/正确/FAILF/错F是字符串字面量/把字符用双引号引起来构成字符串字面量,所以第三个语句是错误的。我们会在后续的教程中讨论字符串,现在暂且把它放下。因为字符实质上是以数字的形式存储的,所以我们可以直接使用数字来初始化字符变量,或者给字符变量赋值CHARCH65/不好的风格/在ASCII中,A的编码是65,所以对于使用ASCII的系统来说,这个语句等同于CHARCHA。使用非ASCII的系统中,65代表的不一定是A,而有可能是其它任何字符,所以使用数字来初始化字符变量,或者给字符变量赋值是一种不好的风格,因为移植性太差了但是,使用字符常量例如A来初始化字符变量,或者给字符变量赋值,字符变量得到的一定是我们所期待的字符的编码值。例如CHARCHA无论在使用任何编码的系统中,CH都能够得到字符A所对应的编码值。这是因为编译器会自动把A转化成A所对应的编码值。因此,我们应该使用字符常量来初始化字符变量,或者给字符变量赋值而不要用数字。有趣的是,C使用INT类型来处理字符常量,而不是CHAR类型。例如,在使用32位INT的ASCII系统中,以下代码CHARCHCC的编码值67被存储于32位的内存单元中不过CH仍然存储于8位的内存单元中,只是它的值变成了67。因此,我们可以定义形如GOOD的古怪字符常量。因为每个字符的编码值占用8位的内存单元,所以这个常量刚好可以存储于32位的内存单元。然而,用这种字符常量初始化字符变量,或者给字符变量赋值的话,导致的结果是,字符变量只能得到字符常量的最后8位。也就是说,以下代码CHARCHGOODCH得到的是D的值。以后,在没有特殊说明的情况下,我们讨论的都是ASCII。ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUL32SPACE64961SOH3365A97A2STX3466B98B3ETX3567C99C4EOT3668D100D5ENQ3769E101E6ACK3870F102F7BEL3971G103G8BS4072H104H9HT4173I105I10LF4274J106J11VT4375K107K12FF44,76L108L13CR4577M109M14SO4678N110N15SI47/79O111O16DLE48080P112P17DC149181Q113Q18DC250282R114R19DC351383S115S20DC452484T116T21NAK53585U117U22SYN54686V118V23ETB55787W119W24CAN56888X120X25EM57989Y121Y26SUB5890Z122Z27ESC599112328FS6092124|29GS619312530RS629412631US6395_127DELNUL空字符VT垂直制表SYN同步SOH标题开始FF走纸控制ETB信息组传送结束STX正文开始CR回车CAN作废ETX正文结束SO移位输出EM媒介结束ENDOFMEDIUMEOT传输结束SI移位输入SUB换置ENQ询问字符DLEDATALINKESCAPEESCESCAPEACK确认DC1设备控制1FS文件分隔符BEL响铃DC2设备控制2GS组分隔符BS退格DC3设备控制3RS记录分隔符HT横向制表DC4设备控制4US单元分隔符LF换行NAK否定DEL删除C语言中CHAR的用法不可打印字符NONPRINTINGCHARACTERS有些ASCII字符是不可打印的。例如退格、另起一行、警报等。C语言提供了两种方法来表示这种不可打印字符。第一种方法是使用ASCII编码。例如,ASCII编码中,7用于表示警报CHARBEEP7第二种方法是使用特殊符号序列,也就是所谓的转义字符ESCAPESEQUENCES。参见下表转义字符含义A警报ALERTANSICB退格BACKSPACEF换页FEED换行NEWLINE回车CARRIAGERETURNT水平制表符HORIZONTALTABV垂直制表符VERTICALTAB反斜杆BACKSLASH单引号SINGLEQUOTE双引号DOUBLEQUOTE问号QUESTIONMARK0OO八进制数OCTALVALUEO代表一个八进制数字XHH十六进制数HEXADECIMALVALUEH代表一个十六进制数字给变量赋值的时候,转义字符必须使用单引号引住。例如CHARNL下面我们详细学习每个转移字符的含义。A警报是ANSIC89添加的,用于产生可听或者可视的警报。A产生的效果取决于硬件。一般来说,输出A会产生鸣响。但是在某些系统,输出A不会产生任何效果,或者仅仅显示一个特殊字符。标准明确指出,A不应该改变当前活跃位置ACTIVEPOSITION。所谓活跃位置,是指显示设备显示器、打字机、打印机等等显示下一个字符的位置。以显示器为例,活跃位置就是指光标所处的位置,输出A不会导致光标移动位置。B、F、T,以及V都是输出设备控制符。退格符B使当前行的活跃位置后退一个位置。换页符F使活跃位置跳到下一页的开端。注换页符可用于控制打印机换页,但不会导致PC机的显示屏换页。换行符使活跃位置跳到下一行的开端。回车符使活跃位置返回当前行的开端。水平制表符T使活跃位置移动若干个位置通常是8个。垂直制表符V使活跃位置换若干行。注V可用于控制打印机换若干行,但是不会导致PC机的显示屏换行。、,以及使我们可以把,和用作字符常量。如果要打印以下句子ISCALLEDBACKSLASH我们需要使用如下语句PRINTFISCALLEDBACKSLASH0OO和XHH是ASCII码的两种特殊表示形式。如果想用八进制ASCII码表示字符,可以在八进制数前面加上,然后用单引号引起来。例如BEEP007/007代表A/打头的那些0可以省略,也就是说,写成07或者7都一样。无论有没有打头的0,7都会被当成八进制数处理。从C89开始,C提供了用十六进制表示字符常量的方法在反斜杆后面写一个X,然后再写1到3个十六进制数字。例如NLXA/XA代表/注意使用ASCII码时,要注意区分数字4的ASCII码是52,4代表字符4,而不是数字4。此外,尽管和XA,A和007是等价的,但是我们应该尽可能使用和A,而不要用XA和007。这是因为前者易懂、便于记忆,而且移植性更高。而后者只对使用ASCII码的系统有效。和数字字符。例如字符C语言中CHAR的用法字符输出PRINTF函数使用C表示输出字符。因为字符是以1字节整数的形式存取的,所以,如果使用D的话,输出的会是整数。例如/这个程序输出字符以及字符的整数编码/INCLUDEINTMAINVOIDCHARCHPRINTFPLEASEENTERACHARACTERSCANFC,CH/由用户输入一个字符/PRINTFTHECODEFORCISD,CH,CHRETURN0请各位自行编译执行此程序,查看其执行结果。输入字符后记得要按回车键。PRINTF函数输出CH的值两次,第一次以字符的形式输出因为格式限定符为C,第二次以十进制整数的形式输出因为格式限定符是D。注意格式限定符只是用于指定数据的输出形式,而不是用来指定数据怎么存储。C语言中CHAR的用法字符类型的符号某些编译器中,CHAR默认是有符号的SIGNED。对于这类型的编译器来说,CHAR的表示范围通常是128到127。而另外一些编译器中,CHAR默认是无符号的UNSIGNED。对于这类型的编译器来说,CHAR的表示范围通常是0到255。一般来说,编译器的使用说明会注明它默认把CHAR当作有符号的还是无符号的。从C89开始,我们可以使用关键字SIGNED和UNSIGNED来修饰CHAR。这么一来,无论编译器默认CHAR是有符号的也好,无符号的也罢,我们都可以用SIGNEDCHAR表示有符号CHAR,也可以用UNSIGNEDCHAR表示无符号CHAR。猜你喜欢1C语言中逻辑或的用法2C语言程序中什么是函数3C语言中S的用法4C语言中FPRINTF的用法5C语言中SWITCH的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值