在许多C表达式中,忽略空格(例如:在** b的情况下,其中b是指针,忽略空格)。但在少数情况下,他们不容忽视。我们在x +++ y和相关(c++ spaces in operators , what are the rules)上获得了很多SO帖子。我知道x +++ y的确意味着(x ++)+ Y,因为postfix的优先级更高。 x ++ + y和x + ++ y之间也存在差异。 因此,在c表达式中并不总是忽略空格。我想知道表达式中空格的规则是什么。在哪里定义?什么时候不被忽视?是两个运算符一个接一个地特别增加/减少运算符的时候?
答案 0 :(得分:6)
空格仅与创建令牌相关。 +和++都是有效的令牌。 C中的规则是令牌是由创建有效令牌的最长字符序列组成的,因此没有空格的“++”成为单个“++”令牌,而带有空格字符的“+ +”成为两个“ +“代币。由于没有“+++”标记,“+++”变为“++”标记,后跟“+”标记。