C语言转义字符

在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。
在程序中 int a = 06d, 是一个八进制的形式。
在转义字符中,'\x6d' 才是合法的,0不能写,并且x是小写。
'\141’ 是合法的, 0是不能写的。
'\108’是非法的,因为不可以出现8。

我想请教下高人,'\x6d'是如何转换成字符'm'的,还有'\108'中为什么不能出现8。

   å­—符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。下图是C语言中常用的转义字符。


   在C程序中使用转义字符\ddd或者\xhh可以方便灵活地表示任意字符。\ ddd为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制ASCII码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制ASCII码值。

使用转义字符时需要注意以下问题:
1) è½¬ä¹‰å­—符中只能使用小写字母,每个转义字符只能看作一个字符。
2) \v åž‚直制表和\f æ¢é¡µç¬¦å¯¹å±å¹•æ²¡æœ‰ä»»ä½•å½±å“ï¼Œä½†ä¼šå½±å“æ‰“印机执行响应操作。
3) åœ¨C程序中,使用不可打印字符时,通常用转义字符表示


注:
1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。
3,\t å…‰æ ‡å‘前移动四格或八格,可以在编译器里设置
4,\' åœ¨å­—符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 ' å³å¯ã€‚
5,\? å…¶å®žä¸å¿…要。只要用 ? å°±å¯ä»¥äº†ï¼ˆåœ¨windows VC6 å’Œtc2 ä¸­éªŒè¯ï¼‰ã€‚

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-23
\ddd是表示八进制'\108'是八进制所以由于八进制是0 1 2 3 4 5 6 7 组成。所以自然不能出现8的。
\141’ 0是可以写的。
\xhh是十六进制 将它换成十进制的ASCII码对应找到字符
第2个回答  2020-02-15
%d表示十进制有符号整数
\n表示回车换行
\t表示横向跳到下一制表位置(每个制表位置相差8个字符)
\b表示退格,将当前位置移到前一列
这段代码就是输出inum1,inum2,inum3
至于\n,\t,\b(还有\r(回车,将当前位置移动到本行的开头),\\(反斜线字符“\”),\'(单引号符),\''(双引号符),\ddd(1~3位八进制数所代表的字符),\xhh(1~2位十六进制数所代表的字符))这些效果,我建议一一的在平台上打出代码,才能看出效果。
我个人建议用Microsoft
Visual
Studio
2005来编写C语言,这是微软提供的编程的.net平台,很好用,更能性强大。
第3个回答  2010-01-23
\ddd是用8进制表示字符的方法
\xdd是用16进制表示字符的方法

\x6d是表示0x6d序号的字符,也就是十进制的109也就是'm'
\ddd表示方式使用八进制表示字符,自然不能出现8了本回答被提问者采纳
相似回答