main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); }如果可以告诉步骤,为何--a=b++
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/10 14:35:25
![main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf(](/uploads/image/z/1559438-62-8.jpg?t=main%EF%BC%88%EF%BC%89+%7Bint+i%2Cj%2Ck%2Ca%3D3%2Cb%3D2%3B+i%3D%28--a%3D%3Db%2B%2B%29%3F--a%3A%2B%2Bb%3B+j%3Da%2B%2B%3Bk%3Db%3B+printf%28%22i%3D%25d%2Cj%3D%25d%2Ck%3D%25d%5Cn%22%2Ci%2Cj%2Ck%29%3B+%7D%E5%A6%82%E6%9E%9C%E5%8F%AF%E4%BB%A5%E5%91%8A%E8%AF%89%E6%AD%A5%E9%AA%A4%2C%E4%B8%BA%E4%BD%95--a%3Db%2B%2B)
xRQOA+&[ o^M;RBl*BS*b9QLɅ1[34iҧ/3;|W,=Y5KoI-ZeYbD3fhZofdŸeMzbg
M
ֲdζ]cCu9_8TxS1#|L6Q,sD)W\Np(`;r,N?yJEp'?aUiw&Jۏ(Y; Dxc{t>KuۄLLk"OoE58oj-hB̏aUHU͟ 8L
main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); }如果可以告诉步骤,为何--a=b++
main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); }
如果可以告诉步骤,为何--a=b++
main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); }如果可以告诉步骤,为何--a=b++
1. i=(--a==b++)?--a:++b; 三目运算符,先判断条件(--a==b++)得到的结果成立,最终得到结果a=2,b=3,其中a减1后被赋值了,b先被赋值为2,比较结束后b再加1,这个你应该能够懂是++、--的运行规则,得到结果后成立的运行,不成立的不运行,本题是运行--a,不运行++b.三目运算符右结合的情况时,再有两个以上或多个时,才用到这个功能,例如a?b : c ? d : j.最终i=1, a=1,b=3.
2. j=a++,先将a赋值给j,则j=1,最后a=2.
3. k=b=3.