作为初学者,入门c语言的过程中,转义字符和ASCAII码两者的区别与联系使我感到一点困惑。
存在的困惑:
1.该如何在C语言中使用ASCII码?为何有时要使用"\",有时又可以直接使用?
对此,我打算重新梳理两者。
一、两者区别
ASCII码:数据在计算机上都是通过二进制来实现数据的存储,即特定的编码用来对应特定的符号、字符。ACSCII码由美国标准化组织出台,用以统一编码规则。
转义字符:某些ASCII码无法被打印出来(如一些代表行为的字符,退格换行等),c语言中可以使用转义序列进行表示。
图源百度百科。ASCII_百度百科
而剩余的未用此种方式表示的的ASCII码,则可以通过\ddd,\xdd这两种方式进行表示。这两种方式是ASCII码的一种特殊的表示方法。(参考书籍:《C Primer Plus》)
二、两者联系
ASCII码值可以由十进制、二进制、八进制、十六进制表示出来,只要数值相同,不同的进制下的数字也可以表示同样的意思。
以使用ASCII码打印字母A为例。
将65通过%c打印出来,会得到十进制下65对应的字母A。将65通过%c打印出来,会得到十进制下65对应的字母A。
printf("%c",65);
而65在八进制下则是101.而要使用八进制的ASCII码,则需要用到转义字符\ddd.(ddd为三位八进制数)
printf("\101");
在16进制下是41.(\xdd格式)(dd为两位十六进制数)
printf("\x41");
个人总结:
C语言提供了一些转义字符,这些字符与ASCII码表中某些编码作用一致。
要使用ASCII码,需要使用%c转化说明来告诉编译器,输入的是ASCII码而非整型。
而要使用八进制与十六进制的ASCII码值的时候,则需要转义字符中的\ddd与\xdd来告知使用的是八进制与十六进制的ASCII码。
个人总结理解必有粗浅错漏之处,欢迎大家批评指正~