#include <stdio.h>
int main()
{
int a = 1, i = a + 1;
do
{
a++;
} while (!~i++ > 3);
printf("%d\n",a);
}
请问while里面的条件先运算哪一个?
#include <stdio.h>
int main()
{
int a = 1, i = a + 1;
do
{
a++;
} while (!~i++ > 3);
printf("%d\n",a);
}
请问while里面的条件先运算哪一个?
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在C语言中,条件语句的计算顺序是从左往右的。在这个代码片段中,!i++ > 3的计算顺序是先执行i++,即先对变量i取反(~运算符表示按位取反),再对i进行自增操作(++运算符表示自增1)。最后将这个结果与3进行比较,如果比3大,则条件成立,否则条件不成立。
注意,由于!运算符优先级较高,因此在进行比较操作之前,会先将取反操作的结果取反,即还原原始的值。因此!i++ > 3实际上等价于i++ <= 3。