C和指针#2.2词法规则

来源:互联网 发布:电脑监控录像软件 编辑:程序博客网 时间:2024/06/16 12:15

一.字符

1.三字母词/三元符(trigrph)

#include<iostream>using namespace std;int main(){    cout<<"??("<<endl;    cout<<"??<"<<endl;    cout<<"??="<<endl;    cout<<"??)"<<endl;    cout<<"??>"<<endl;    cout<<"??!"<<endl;    cout<<"??'"<<endl;    cout<<"??-"<<endl;}

输出为

[{#]}|^~

另外”??/”的实际意义是”\”。

    cout<<"run(Are U ready ??):"<<endl;

这就是为什么上面这段代码输出为:

run(Are U ready ]:

预防三字母词,加转义符

\?\"\'\\
 cout<<"run(Are U ready \?\?):"<<endl;

于是就有了正确的结果:

run(Are U ready ??):

2.换行符’\n’和回车符’\r’
换行符就是另起一行,回车符就是回到一行的开头,所以我们平时所编写的回车符确切来说叫做回车换行符。

'\n'-->'\10'-->换行(newline)'\r'-->'\13'-->回车(return

只是一个回车符并不能换到下一行,只是到了该行的开头
注意:
在windows下,回车换行符是”\r\n”,但是在linux下是没有’\r’的。
3.\ddd和\xddd
\ddd
ddd代表八进制数,结果为其所代表的字符
\xddd
ddd代表十六进制数,结果为其所代表的字符

    cout<<"\55"<<endl;    cout<<"\x55"<<endl;

结果为:

-U

二.标识符

标识符(identifier)就是变量、函数、类型等的名字,由大小写字母、数字、下划线组成,不能以数字开头。关键字不能作为标识符使用
注意:
标识符的长度没有限制,但ANSC C标准允许编译器忽略第31个字符以后的字符。同时允许编译器对表示外部的名字(也就是-lname链接器操纵的名字)的标识进行限制,只识别前六位不区分大小写的字符。

但是笔者利用g++测试,没有31个字符的限制。

三.注释

C语言注释采用/**/,不支持嵌套。
C++采用//,支持嵌套。
所有的注释都会被预处理器替换成一个空格。

1 0