已知:int a=1,b=0,c=1

来源:百度知道 编辑:UC知道 时间:2024/06/26 06:12:04
已知:int a=1,b=0,c=1;,计算表达式!b||++a&&++c值后,a,b,c的值分别为

运行后,a=1,b=0,c=1.
b=0,!b=1,后面是||运算符,整个表达式必定为真.由于C采取"短路"运算(一旦确定表达的值,便不再计算后面的),故a,c的值不变,当然b也未变.

||和&&优先级是一样的,所以先算||,后&&;
算||之前算!b,为1,所以!b||++a表达式值为1,++a不做了;
算++c后++c为2,c也为2,表达式!b||++a&&++c为1;
所以a为1,b为0,c为2.

表达式结果为1,
a,b,c分别为2,0,2。

程序如下:include<iostream>
using namespace std;
int main()
{
int a=1,b=0,c=1;
int k=b||++a&&++c;
cout<<k<<endl;
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;

}