楼主你好。
a和b的值分别为5和2。
其实没什么特别的,就是先执行a=b+2让a变成4,然后执行a++让a变成5,最后执行a+b不会影响任何变量,所以最终a为5,b为2。
测试代码:
#include <stdio.h>
void main(){
int a=1,b=2;
a=b+2,a++,a+b;
printf("a=%d b=%d\n",a,b);
}
运行结果:
设int a=1,b=2;则执行a=b+2,a++,a+b;后a和b的值分别是多少
a和b的值分别为5和2。其实没什么特别的,就是先执行a=b+2让a变成4,然后执行a++让a变成5,最后执行a+b不会影响任何变量,所以最终a为5,b为2。测试代码:include <stdio.h> void main(){ int a=1,b=2;a=b+2,a++,a+b;printf("a=%d b=%d\\n",a,b);} 运行结果:...
设int a=1,b=2;则执行a=b+2,a++,a+b
int a=1,b=2 ;a=1,b=2 a=b+2 ;a=2+2=4 a++ ;先引用a的值,再把a加1 a+b ;如果前面的是“;”则a+b=a+++b=4+1+2=7 如果前边的不是“;”则a+b=4+2=7,在来a++。a最后的值是5
int a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是...
a = b + c 这句已经是真(TRUE)了,所以,++b 就不执行了,b 的值还是 2
int a=1,b=2;a++;b++;printf("%d%d",a++,++b);分别写出运行之后a,b的...
解释:当执行完 int a=1,b=2;a++;b++; 之后,a = 2,b=3 当执行 printf("%d%d",a++,++b); 由于 a++ 是先赋值再自加,因此a++ 为2,执行之后 a等于3 ++b 是先自加,再赋值,所以 ++b 为4,b 为 4
若有定义int a=1,b=2;,执行语句a++>=b&&b++; 之后,变量a和b的值分别...
因为编译器在判断a++>=b 是逻辑假后就不会再计算后面的b++了 因为逻辑假与逻辑真或逻辑假相与都是逻辑假所以就不会计算了。
设变量int a=1,b=2;则执行表达式a+=3,b-2,++b,a*=b后变量a和别的...
逗号表达式的运算过程为:从左往右逐个计算表达式 a+=3,\/\/相当于a=a+3,a=4,b=2 b-2,\/\/a=4,b=2 ++b,\/\/a=4,b=3 a*=b\/\/相当于a=a*b,a=12,b=3 所以a的值为12,b的值为3
int a=1,b=2;执行c=a++||b++;语句后变量b的值是
b=2;||运算从左到右,但只要左边的值非0,那么整个表达式的值就是1,||右边就不再运行 由于 int a=1,所以 c=a++ || b++;相当于 c=(a++)||(b++);所以||左边非0,所以b++不运算,所以b就是原值2 运行结果:
int a=1,b=2 . a>b?a++:b++ 最后结果a和b的值
a=1 b=3 "? :"意思就是说满足">"就运行冒号前的内容,否则就运行冒号后面的句子。
int a=1,b=2; 那么表达式(a++)+(++b) 的值是:
a++是先使用a的值,然后再改变a的值。++b是先改变b的值加1,然后再使用b的值。结果为 1+3 =4
若有定义 int a=1,b=2; 那么表达式(a++)+(++b) 的值是?
(a++)表达式会先调用a的值,为1.然后a自加1;(++b)b先自加1,变成3,然后再被表达式调用。所以答案是:1+3=4 总结下:a++:先用再变 ++a:先变再用