vlambda博客
学习文章列表

C语言中鲜为人知的 “三字母词” 到底是啥?

各位,今天给大家带来一个你可能没有听过的知识点,因为目前大部分C语言教材或者书籍中都很少提到,所以可能了解的人较少。


它就是我们标题中的“三字母词”。“三字母词”来源于ANSI C中,它还有一个名字“三联符序列”。说这个之前,我们大家肯定对C语言中的转义序列比较了解了,比如用\n代替回车,用\r代替换行,用\\插入\ 等等


其实“三字母词”跟这个意思差不多,在以前的老式键盘中,类似“  [ ] { } ^|   "等符号是没有的,当时为了解决这个问题,C语言中出现了所谓的“三字母词”,也就是在代码编译阶段用三个字符代替这些没有的符号,一共有9个,如下表所示:


              ??=               #
              ??(                [
              ??)                ]
              ??<               {
              ??>                }
              ??/                /
              ??!               |
              ??'                ^
             ??-                ~


举个例子:

printf(" Do you kown (or??):");

等价于:

Do you kown (or]: 而不是 Do you kown (or??): 


当然啦,三字母词是ANSI C定义的,不过现在很多编译器都不需要这个转义功能了,因为现在的键盘可以直接敲出这些字符,所以说你把它当成C语言的一个知识点去了解就行了。好了,就写到这里吧,你学会了吗?



往期精彩回顾









编程中著名的 “Hello World” 到底从何而来?