作业帮 > 综合 > 作业

设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/11 09:30:32
设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多少,为什么?
表达式给错了,是k=a++==3/2||(b-=a--&&3%2)
设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多
结果是a=2;b=2;k=1;
因为a++后,a=2;返回a的初值1跟3/2比较,3/2是int相除结果是int(1);比较结果是1==1;所以||后面的不再执行,k的结果是true即是1;
再问: 为什么要返回a的初值跟3/2比较?
再答: int/int结果是int,所以是1不是1.5,跟3.0/2结果不一样
再问: 哦不,我的意思是为什么不是用a++,就是不用2去比较而用1,即a去比较
再答: 这是后增量,取的是原值,等价a++{i=a;a+=1;return i;}
再答: 跟前增量++a不一样