我似乎对 C++ 中的标点符号一无所知。我的大学在教授代币时甚至没有提到它,他们将其称为“特殊符号”并略过。这两个术语可以互换使用吗?如果在考试中被问到,我该如何用 80 到 100 个单词来写标点符号?我可能想知道它与编译器交互的方式,它与运算符的区别,或者其他可以在标点符号上建立一个好的简短注释的东西。
笔记:
在网上冲浪以获得高质量的答案后,我得到了这个。但这是一个非常简短的答案,这不是我想要的。
编辑:
即使是几点,我也可以建立一个简短的笔记。
我似乎对 C++ 中的标点符号一无所知。我的大学在教授代币时甚至没有提到它,他们将其称为“特殊符号”并略过。这两个术语可以互换使用吗?如果在考试中被问到,我该如何用 80 到 100 个单词来写标点符号?我可能想知道它与编译器交互的方式,它与运算符的区别,或者其他可以在标点符号上建立一个好的简短注释的东西。
笔记:
在网上冲浪以获得高质量的答案后,我得到了这个。但这是一个非常简短的答案,这不是我想要的。
编辑:
即使是几点,我也可以建立一个简短的笔记。
C++ 标准文档实际上似乎没有定义标点符号的含义,除了标点符号是词汇标记。具体来说:
[语法.lex]
token: identifier keyword literal operator punctuator
下面是来自 C 语言的定义:
6.4.6 标点符号
句法
标点符号:其中之一
[ ] ( ) { } . -> ++ -- & * + - ~ ! / % << >> < > <= >= == != ^ | && || ? : ; ... = *= /= %= > += -= <<= >>= &= ^= |= , # ## <: :> <% %> %: %:%:
语义
标点符号是具有独立句法和语义意义的符号。根据上下文,它可以指定要执行的操作(这反过来可能会产生一个值或函数指示符、产生副作用或它们的某种组合)在这种情况下,它被称为运算符(其他形式的运算符也在某些情况下存在)。操作数是操作员作用的实体。
C++ 的语法有类似的列表(引用最新的标准草案;列表包括新的运算符 <=>,它将在 C++20 中出现):
[lex.operators]
preprocessing-op-or-punc:其中之一
{ } [ ] # ## ( ) <: :> <% %> %: %:%: ; : ... new delete ? :: . .* -> ->* ~ ! + - * / % ^ & | = += -= *= /= %= ^= &= |= == != < > <= >= <=> && || << >> <<= >>= ++ -- , and or xor not bitand bitor compl and_eq or_eq xor_eq not_eq