C和指针#2.2词法规则

一.字符

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值