700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言有关转义字符 \ 的问题(附ASCII表)

C语言有关转义字符 \ 的问题(附ASCII表)

时间:2018-12-07 23:50:38

相关推荐

C语言有关转义字符 \ 的问题(附ASCII表)

C语言有关转义字符 \ 的问题(附ASCII表)

源代码:

#include<stdio.h>int main(void){char ch;ch = '\362';printf("%c\n",ch);printf("\n%s","aaaaa\"bbbbb");printf("\n%s","aaaaa'bbbbb");printf("\n%s","aaaaa\'bbbbb");return 0;}

运行结果:

≥aaaaa"bbbbbaaaaa'bbbbbaaaaa'bbbbb

问题:

char'\362'为什么输出的结果是呢?是因为362是大于等于号对应的字符吗?

'\362'指的是以8进制表示的362对应的那个字符(8进制362换算成10进制就是242,对应的就是ASCII表中10进制为242的那个字符,通过查阅ASCII表可知242号字符为 ò (带重音符的小写字母o)

至于为何会输出符号,猜测可能是使用了非ASCII的其他字符编码方式.

源代码的第6行、第8行的结果里面为什么没有那个斜杠\呢?

C语言中,"\'"就是一个内容为单引号的字符串,等价于"'";

同样的,"\""就是一个内容为双引号的字符串,但它并不等价于""".因为会造成歧义,计算机无法正确匹配是哪两个"为一对.

测试代码如下:

#include<stdio.h>int main(void){char ch;ch = '\362';printf("%c\n",ch);printf("\n%s","aaaaa"bbbbb");return 0;}

错误信息:

ascii.c:6:27: warning: missing terminating '"' character [-Winvalid-pp-token]printf("\n%s","aaaaa"bbbbb");^1 warning and 1 error generated.

即:

ascii.c:6:27: 警告: 缺少终止 '"' 字符 [-Winvalid-pp-token]printf("\n%s","aaaaa"bbbbb");^生成了 1 个警告和 1 个错误。

所以在这种情况下我们会使用转义字符\来帮助计算机完成匹配.

ASCII表

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。