以下 C 语句中的标记数。
print("℅d",a+=b);
谁能告诉我+=
运算符应该被视为一个代币还是两个代币
根据 C11 标准 §6.4.6 标点符号,C 语言中的"标点符号"是:
[ ] ( ) { } . ->
++ -- & * + - ~ !
/ % << >> < > <= >= == != ^ | && ||
? : ; ...
= *= /= %= += -= <<= >>= &= ^= |=
, # ##
<: :> <% %> %: %:%:
如您所见,+=
是标点符号之一 - 它是一个标记。
因此,您的语句中有 9 个令牌:
print("℅d",a+=b);
print
(
"%d"
,
a
+=
b
)
;
在 C 源程序中,编译器识别的基本元素是"标记"。标记是编译器不分解为组件元素的源程序文本。
基本上,+=
是一个速记运算符;编译器将其视为单个标记。
例如:
x+=10;
x = x + 10;
上述两个代码是相同的,在第一行代码中,编译器将+=
视为一个标记,而在第二行中,它将=
和+
视为两个标记。
有关 C 令牌的详细信息,请参阅Microsoft文档。