#include <stdio.h> 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); }
时间: 2023-12-06 11:04:26 浏览: 78
这段代码的作用是将表达式 `(--a == b++) ? --a : b++` 的值赋给变量 `i`,将变量 `a` 的值加 1 赋给变量 `j`,将变量 `b` 的当前值赋给变量 `k`,并将这三个变量的值输出到屏幕上。
具体步骤如下:
1. 变量 `a` 的值为 3,变量 `b` 的值为 2。
2. 表达式 `--a` 先将变量 `a` 减 1,变成 2,再与变量 `b` 的当前值 2 比较,结果为假(0)。
3. 因为表达式的结果为假,所以执行 `b++`,将变量 `b` 的值加 1,变成 3,此时表达式的结果为 3。
4. 将表达式的结果 3 赋给变量 `i`,所以变量 `i` 的值为 3。
5. 执行 `j=a++`,将变量 `a` 的当前值 2 赋给变量 `j`,然后将变量 `a` 的值加 1,变成 3。
6. 将变量 `b` 的当前值 3 赋给变量 `k`,所以变量 `k` 的值为 3。
7. 最后输出 `i=3,j=2,k=3`。
阅读全文