C语言教程_03:printf()与转义字符
云湍 Lv3

关于printf()

在上一节中我们以一个程序为例展开我们C语言学习的第一步,这节我们将再次以它为例:

1
2
3
4
5
6
7
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}

在上一节我们介绍C程序结构时,我们并没有探讨printf()后面跟的()以及其中的内容。以上述程序为例子:

1
printf("Hello, World! \n");

括号所构成的一个整体可以看作printf()的一个宾语,相当于语言学中的动宾结构。
而括号内的内容我们可以看到是由一对引号包裹在内的,并且当我们实际运行该程序时,这个引号并没有显示出来,而引号内的其他内容(除了\n)都被原样打印了出来。
由此我们可以知道printf()在打印时,会原样地打印出括号内引号所包裹的大部分内容。
那么,为什么\n不会被打印呢?

转义字符

转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加”"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
关于ASCII码大家可以自行或点击此处了解更多。

关于\n

在介绍printf()时,我们曾疑惑于为何\n不会被打印出来,而在刚刚我们了解到了转义字符,明白了转义字符的意义,同时也知道了转义字符不会被显示出来的机制。
那么\n所代表的是什么意思呢?
如果你尝试过在我们演示的代码里加入多行printf()而不加\n,你会发现这些内容前后连接到了一起;而如果你加入了\n,你会发现它们一行一行分布。
由此我们很容易才想到\n所起到的是换行的作用。
那么除了\n,还有哪些转义字符呢?

转义字符表

转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\‘ 单引号 039
\“ 双引号 034
\\ 反斜杠 092

结语

转义字符是C语言中为数不多需要记忆的东西,但我们并不倡导死记硬背,你应当去尝试上述每一个转义字符,在实践中感受它们的作用。

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
总字数 23.8k 访客数 访问量