main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);解析

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 13:21:03
main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(

main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);解析
main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);解析

main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);解析
if(i++==1&&(++j==3||k++==3)) 先看 i ++== 1,因为是++在后面,所以语句执行完才i才会变成2,所以i++ == 1,true,.后面++j==3||k++==3,++j,++ 在前面,所以执行的时候j就等于3了,而k++ ==3 是|| ,只要++j == 3 成立,他就立即返回了ture了,所以k++ == 3不会执行,所以k 欲绝结束后也是3,所以printf 的结果是 2,3,3