当前位置: C语言 -- 专题 -- C语言中的标点符号

C语言中的标点符号

标点符号(punctuators)是具有独立语法和语义的符号。根据上下文,标点符号可以指示执行某个操作(该操作可能生成一个值或者函数指示符,也可能产生副作用,或者它们的某种组合。),这种情况下标点符号也称为运算符(operator)。运算符作用实体称为操作数(operand)。


C语言中的标点符号包括:

[ ] ( ) { } . -> ++ -- & * + - ~ !

/ % << >> < > <= >= == != ^ | && || ? : ; ...

*= /= %= += -= <<= >>= &= ^= |= , # ##

<: :> <% %> %: %:%:


其中最后一行标点符号为双字符(digraphs),其对应字符如下表所示:

标点符号 <: :> <% %> %: %:%:
对应字符 [ ] { } # ##

如果在字符常量或者字符串字面量中,上述字符不会被解释成双字符;例如:

puts("<:");     //将输出<:。

除了字符串化,双字符和对应字符的使用基本相同,例如:

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
/*双字符序列*/

#include <stdio.h>
 
#define PRINT(n) printf(#n " = %d\n", n)

int main(void)
{
    int arr[] = {1, 3, 5};

    PRINT(arr[1]);
    PRINT(arr<:1:>);
    
    return 0;
}

将输出:

arr[1] = 3

arr<:1:> = 3

#n作用是将n字符串化;语句PRINT(arr[1]);等价于语句printf("arr[1]" " = %d\n", arr[1]);;语句PRINT(arr<:1:>);等价于语句printf("arr<:1:>" " = %d\n", arr[1]);