标点
来自cppreference.com
这些是 C 中的标点符号。每个符号的含义在链接的页面中详述。
{
}
[
]
#
- 引入预处理指令。
- 用于字符串化的预处理运算符。
##
(
)
- 表达式中指定分组,改变结合顺序。
- 函数调用运算符。
-
sizeof
、_Alignof
(C11 起)、typeof
或typeof_unqual
(C23 起)表达式中划分出操作数。 - 显式类型转换中划分出类型标识。
- 复合字面量中划分出类型标识。(C99 起)
- 声明或类型标识中指定分组,改变结合顺序。
- 函数声明符(声明或类型标识)中划分出形参列表。
-
if
、switch
、while
、do-while
或for
语句中,划分出控制子句。 - 仿函数宏定义中,划分出宏形参。
- 仿函数宏调用中,划分出宏实参,或避免将逗号被判读为实参分隔符。
-
defined
、__has_include
、__has_embed
或__has_c_attribute
(C23 起) 预处理运算符的一部分。 - 泛型选择表达式的一部分。(C11 起)
-
_Atomic
类型说明符中,划分出类型标识。(C11 起) - 静态断言声明中,划分出操作数。(C11 起)
-
_Alignas
说明符中,划分出操作数。(C11 起) - 属性中, 划分出操作数。(C23 起)
- 位精确整数类型名(_BitInt(N))中,划分出大小。(C23 起)
- 可变宏定义中的 __VA_OPT__ 替换的一部分。(C23 起)
- #embed 指令和 __has_embed 预处理器表达式中使用的预处理器形参中,划分出预处理器形参子句。(C23 起)
;
- 如下语法的结束:
- 分隔 for 语句中的第二和第三子句。
:
...
?
- 条件运算符的一部分。
::
.
->
~
!
+
-
*
- 间接引用运算符(也称解引用运算符)。
- 乘法运算符。
- 声明符或类型标识中的指针运算符或成员指针运算符。
- 在函数声明的变长数组声明中的数组长度占位符。(C99 起)
/
%
^
&
|
=
+=
-=
*=
/=
%=
^=
&=
|=
==
!=
<
- 小于运算符。
- 引入以下情况中的头文件名
- #include 指令
- __has_include 预处理表达式 (C23 起)
- #embed 指令 (C23 起)
- __has_embed 预处理表达式 (C23 起)
-
#pragma
指令中由实现定义的位置
>
- 大于运算符。
- 指定以下情况中的头文件名结束
- #include 指令
- __has_include 预处理表达式 (C23 起)
- #embed 指令 (C23 起)
- __has_embed 预处理表达式 (C23 起)
-
#pragma
指令中由实现定义的位置
<=
>=
&&
||
<<
>>
<<=
>>=
++
--
,
- 逗号运算符。
- 以下列表的列表分隔符:
引用
- C23 标准(ISO/IEC 9899:2024):
- 6.4.6 Punctuators (第 68-69 页)
- C17 标准(ISO/IEC 9899:2018):
- 6.4.6 Punctuators (第 52-53 页)
- C11 标准(ISO/IEC 9899:2011):
- 6.4.6 Punctuators (第 72-73 页)
- C99 标准(ISO/IEC 9899:1999):
- 6.4.6 Punctuators (第 63-64 页)
- C89/C90 标准(ISO/IEC 9899:1990):
- 3.1.6 Punctuators
参阅
代用表示 (C95) | 某些运算符的代用拼写 |