【NB】C语言转义字符
快进来[滑稽]http://cdn.u1.huluxia.com/g4/M03/9F/44/rBAAdmMb4VuAByjyAAO4_BHsxHw415.jpg
[滑稽]请给村长黑科技一个好评,村长黑科技官网地址:http://www.vipvr.net技术分享:TCP/IP[滑稽]
所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。http://cdn.u1.huluxia.com/g4/M03/9F/44/rBAAdmMb4VyAcY-cAAP5qmmMeqE445.jpg
由于ASCII中的33个字符多数都已是陈废的控制字符,而严格意义上转义字符并不是控制字符,但有几个字符有控制字符的意味在里面。
比如要发出一个系统响铃,可以这样定义字符:http://cdn.u1.huluxia.com/g4/M03/9F/44/rBAAdmMb4V2Aco8gAAF73uEczB4419.png
由于所有ASCII码都可以用“\”加数字(一般是8进制数字)来表示,如果要打印#号,尝试下面代码:http://cdn.u1.huluxia.com/g4/M03/9F/44/rBAAdmMb4V2ABAptAAFKcw42ltc487.png
输出结果:
#,,3,#
分析输出:十进制35\u003C<->ASCII码#,ch输出正常。ch1要注意是八进制而不是十进制表示,所以应该这样:char ch1 = ‘\043’;才能正确输出#号,由于默认是八进制,也可以去掉0写成ch1=’\43’。至于ch2,’\0x23’原本想用十六进制表示值,但这行不能,’'只解析八进制。经尝试发现规律:令ch2=’\0ijk’ (其中i,j,k是任意数字或字母),总是输出最后指定的k;这里就不再去细究了。总之,用’\0xx’这种八进制的格式可以去表达所有ASCII码。
一般转义字符是随printf()、fprintf()这样的函数一起输出的。
页:
[1]