-1 c++
我正在尝试并想知道一些关于 C 代码的内容。我在这里看到了一些相关的代码。我无法联系到给出答案的人。所以我想问你:
int x = 100;
while (0 <-------------------- x) {
printf("%d ", x);
}
return 0;
Run Code Online (Sandbox Code Playgroud)
我回答了这个问题,是的,有一个错误。 /sf/answers/1937092461/
但正如你所看到的,它的回答是这样的:
90 80 70 60 50 40 30 20 10。
<是c中的一个运算符。
<-不是c中的运算符。
-是c中的一个运算符。
--是c中的一个运算符。
---不是c中的运算符。
据我所知,最大的蒙克说,好吧,你--作为操作员继续前进。
样本可以成倍增加。(使用-and+运算符)从现在开始,我如何理解/解析这段代码?难道只有我一个人遇到错误吗?
您正在使用 C++ 进行编译,而不是使用 C。
操作--者只能对一个对象进行操作。在 C 中,--运算符仅产生一个值,而不是左值。(左值是可以指定对象的表达式。)因此编译器将报告0 <-------------------- x有错误。
在 C++ 中,--运算符生成左值。所以编译器会允许0 <-------------------- x.
在 C 和 C++ 中,解析都很简单:
<--------------------,构成令牌的最长字符序列(从头开始)是<,因此将其作为令牌并删除,留下--------------------。--------------------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下------------------。------------------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下----------------。----------------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下--------------。--------------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下------------。------------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下----------。----------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下--------。--------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下------。------,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下----。----,构成令牌的最长字符序列(从头开始)是--,因此将其作为令牌并删除,留下--。--,构成标记的最长字符序列(从头开始)是--,因此它被视为标记并被删除,之后编译器继续处理进一步的源文本。在 C 和 C++ 中,标记的序列都是0 < -- -- -- -- -- -- -- -- -- -- x。在 C 中,该表达式违反了约束。在 C++ 中则不然。