快进来![[滑稽]](/public/face/f25.png)

凯特社区技术分享:TCP/IP![[滑稽]](/public/face/f25.png)
所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

由于ASCII中的33个字符多数都已是陈废的控制字符,而严格意义上转义字符并不是控制字符,但有几个字符有控制字符的意味在里面。
比如要发出一个系统响铃,可以这样定义字符:

由于所有ASCII码都可以用“\”加数字(一般是8进制数字)来表示,如果要打印#号,尝试下面代码:

输出结果:
#,,3,#
分析输出:十进制35\u003C<->ASCII码#,ch输出正常。ch1要注意是八进制而不是十进制表示,所以应该这样:char ch1 = ‘\043’;才能正确输出#号,由于默认是八进制,也可以去掉0写成ch1=’\43’。至于ch2,’\0x23’原本想用十六进制表示值,但这行不能,’'只解析八进制。经尝试发现规律:令ch2=’\0ijk’ (其中i,j,k是任意数字或字母),总是输出最后指定的k;这里就不再去细究了。总之,用’\0xx’这种八进制的格式可以去表达所有ASCII码。
一般转义字符是随printf()、fprintf()这样的函数一起输出的。
举报 0