一.字符
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++采用//,支持嵌套。
所有的注释都会被预处理器替换成一个空格。