短路:右边可能根本没执行
r = a > 0 && (b = 1);:a 是 0,左边 a > 0 不成立,整个式子已经注定是 0,右边的 (b = 1) 根本不执行。
输出里只有 r,看不到 b。先运行,看画布上 b 是几;然后只改 a 的初值,让程序输出 1,再看画布上的 b 变成了几。
代码里以 @youci 开头的 printf 只负责运行后在画布上显示中间值,不影响输出和判题,不用改。
r = a > 0 && (b = 1);:a 是 0,左边 a > 0 不成立,整个式子已经注定是 0,右边的 (b = 1) 根本不执行。
输出里只有 r,看不到 b。先运行,看画布上 b 是几;然后只改 a 的初值,让程序输出 1,再看画布上的 b 变成了几。
代码里以 @youci 开头的 printf 只负责运行后在画布上显示中间值,不影响输出和判题,不用改。