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

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

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

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

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

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

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

如: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”: 对字符来说太大

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2021-05-19
  • 2021-09-20
  • 2022-12-23
  • 2021-10-30
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案