一点樱桃启绛唇——C语言反斜杠 “\” 的意义

1.  有些字符,如:回车、换行、制表符等没有现成的字符代号,所以用反斜杠“\”和其后的一个字符作为一个整体来看待,用来代表他们。所以反斜杠“\”作为转义字符的开端存在,其本身被赋予了这一特殊意义。

2.  在C语言中,很多字符有其特殊含义,如:双引号代表其中内容为字符串,单引号是单个字符,还有我们刚才说的反斜杠“\”,是转义符的开端。但有时候我们只需要使用这些普通的符号,却总是会被系统误认为其是具有特殊意义的。这个时候反斜杠“\”便又起到了作用,他可以把原来具有特殊意义的符号转换为其原有的意义。

     如:printf(“\\”);  便会输出一个单独存在的“\”

3.  反斜杠后的数字怎么处理?

系统会将反斜杠后的数字作为以八进制数字来处理,然后输出与ASCII码值对应的字符。

      如:printf(“\101”);会输出大写的A

      需要注意的是由于ASCII码值最多到255,所以反斜杠后的八进制数字最多到377,即10进制255,否则编译通不过。也就是说,系统只会对反斜杠后小于8的数字进行转义,且最多识别三位。

       因为是八进制,所以反斜杠后的数字不应该存在8和9。假如你反斜杠之后紧挨的数字就是这两个其中之一,系统只会将反斜杠后的数字全部以字符形式输出。

       如:printf(“\821”);输出结果为821.但是系统警告:warningC4129: “8”: 不可识别的字符转义序列

      还有个例子:

       printf(“\419”);  输出的是 !9 ,这是因为 9 不可能在八进制中存在,系统只识别了后两位,至于八进制 41 和!的关系,我想大家都懂。

另外注意:printf(“\008”)什么都不输出,原因就在我刚才讲过的地方,留给大家思考。

4反斜杠后的十六进制数字

     其表示形式为 printf(“\x”);同样的,\x后面的十六进制数字最多到 ff (或FF),且x不能大写

     与上面的八进制不同,八进制识别完成后,后面越界的数字会按照字符格式输出出来,

      但\x后面会识别所有数字,只不过,只要大于 ff 的,编译都不会通过。

     如:printf(“\041”) 输出

      printf(“\000000041”) 输出为空

             printf (“\0412”)输出 !2

             printf(“\x21”)   输出  

             printf("\x00000000021")  输出

       printf(“\x212”)  error C2022:“530”: 对字符来说太大

 

 

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值