再麻烦你一下
x1=(--a==b++)?--a:++b;这句话先算什么后算什么
a = a - 1;
括号里面的相当于(a == b) 这里的b是自增之前的b
然后看这自增之后的a和b是否相等了
如果相等,执行--a
否则执行 ++b
a, b初始化的值是多少?
追问a=8 b=7
追答那就执行--a了
最后的结果a:6, b:8
若有定义int a=2,则语句printf(“%d”,a++);的输出结果为2,为什么不...
因为a++是先返回a的值,以供printf输出,然后再执行a = a + 1;所以输出的是2,在输出之后 a的值是3.
int a=2;printf("%d,%d",++a,a*=2);输出什么
原因:printf函数的参数表遵循从右至左计算规则,即先计算a*=2,使a=4压栈;然后再计算++a使a=5压栈;再从左至右(实质是栈操作后进先出)弹出来输出到屏幕上。
...1; printf("%d,%d\\n",a,++a); } 为什么输出是 2,2不是1,2呀?_百度...
printf是标准的__cdecl,参数自右向左入栈 但是求值顺序是语言标准中没有规定的,所以这个实际上的未定义行为
c语言中int a=2,printf("%d%d%d",--a,a++,--a)输出结果是什么...
int a=2,b,c,d;b=--a;c=a++;d=--a;首先,b=--a时是先做a自减操作(即a=a-1)再赋值给b的,所以b=1,a=1;然后,c=a++是先做c=a,接着a再自增1,所以c=1,a=2;最后,d=--a参照b=--a。
若有int+a=0,则语句printf("%d\\n",a++)结果为?
在C语言中,printf("%d\\n",a++)指的是先输出a当前的值,并在输出后将a的值加1。因此,在执行这条语句时,将会按以下步骤进行:先计算并输出a的当前值,即0;然后将a的值加1,此时a的值变为1。因此,最终该语句的输出结果是“0”,而a的值变为了1。
int a=1;printf("%d,%d,%d",a++,a++,a++);结果
a++表示在使用a的当前值调用a++所在行代码后再将a的值累加1。你这段代码运行的结果就是三个1。
int i=2 ; printf(“%d %d %d”,i*=2,++i,i++) ; 结果为什么是8 4...
这样:这个是printf运算顺序问题。printf从右到左运算:1,第一个执行 i++,先录入i再自增1,也就是最后一项打印2,然后i变成3。2,再运行++i,自增1,再打印,也就是i=4,再打印4。第一个打印8很好理解,不用说了
...int a=5,则表达式:a++的值是 答案是5,为什么不是6呢,我知道a++是先...
那个表达式的值的确是5,但是那个表达式之后a就为6了。
...和输出语句中自加减的区别,如: main() { int a=3; a++; printf...
如果一行代码表达式里就只有 a++; 或者 ++a;,那这两者在作用上是没有区别的 但在赋值,或者提供参数的情况下,a++ 是先提供 a 原本的值,再改变 a 的值 而 ++a 相反,先改变 a 的值,再提供改变后的值
int a=10,printf("%d",a++),输出结果和a的值是()。
a++,表示先用后加1 int a=10,printf("%d",a++),“先用”,输出a,此时a的值为10;“后加1”,指输出a后再加1 所以 输出结果10 a的值是11 还有一个要注意:++a; 表示先加1后用 当然,--a,a--,也是这个道理