转义字符
来源:互联网 发布:nginx引入多个端口 编辑:程序博客网 时间:2024/06/05 17:35
C语言中的数据表示总体分为变量和常量,其中常量又包括实型、整型和字符型,字符型常量中又细分为普通字符、字符串常量和转义字符,转义字符是这次的主题。见下图数据表示分布图。
转义字符,经常用来表示常见的那些无法显示的控制字符,如
\n——换行、\t——制表符等,由于程序不能用一个一般形式的字符来表示这些特殊字符,就采用这种转义字符来表示。
转义字符的内容在C语言基础里就已经有了详细的讲解,我之所以单独拎出来讲,是因为我碰见了下面的题目:
以下程序段的输出结果是:
char s[]=”\\123456\123456\t”;printf(“%d\n”,strlen(s));
A.12
B.13
C.17
D.以上都不对
计算这个字符串里的有效字符个数,想当然地,我的答案是16,结果是都没有这个答案…我想的是 ‘\’ ‘\’ ‘1’ ‘2’ ‘3’ ‘4’ ‘5’ ‘6’ ‘\’ ‘1’ ‘2’ ‘3’ ‘4’ ‘5’ ‘6’ ‘\t’ , 正确答案是………….给正在看博客的你几秒反应时间,你的答案是什么呢?你确定吗??
好吧,是12个—— ‘\’ ‘1’ ‘2’ ‘3’ ‘4’ ‘5’ ‘6’ ‘\123’ ‘4’ ‘5’ ‘6’ ‘\t’。
第一个’\’:\后面再接一个\,输出的就是\。同理的还有’\”、’\”’、’\?’。
第二个’\123’:\后面可以接1~3个八进制数,来输出与该八进制码对应的字符,同理还有\后面接十六进制数字,输出的自然是与该十六进制码对应的字符。
以下是验证代码:
int main(){ char a = '\n';// 换行 char b = '\\';// 结果为 \ char c = '\\n';//发生截断,最后的n覆盖了中间的\,结果为n char d = '\101';//八进制数101相当于十进制数65,对应字符为'A' char e = '\x41';//十六进制数41相当于十进制数65,对应字符为'A' printf("%c %c %c %c %c\n",a,b,c,d,e); return 0;}
运行结果:
这道题让我发现,知识越学越多,需要注意的细节也越来越多,并不是什么都学了就一定好,一定要注意抠细节。共勉。
阅读全文
0 0
- 转义字符
- 字符转义
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 转义字符
- 字符转义
- 字符转义
- 转义字符
- 解决WAS更新web.xml文件不生效的问题(web_merged.xml是罪魁祸首)
- Think in Java 阅读笔记 (第一章 对象导论)
- Linux/CentOS下命令行终端的背景和shell命令提示符及其字体颜色
- java基础_设计模式_抽象工厂模式
- 实时显示 Opencv处理后的Camera图像 AndroidStudio NDK方法
- 转义字符
- JS SOP 编程
- Caffe每一层解析
- mysql下mysqladmin日常管理命令总结(必看篇)
- VS环境配置OpenCV及其疑难
- 设计模式之工厂模式
- Java注解_MD
- 第13章 迈向三维世界——Direct3D 的四大变换
- Java抽象类和接口的区别