关于c语言中a++与输出语句的问题
发布网友
发布时间:2022-05-07 17:32
我来回答
共4个回答
热心网友
时间:2022-06-30 21:38
a++ 在当前语句中 等价于 a, 出了当前语句 再 增 1。
printf("%d,%d",a=a+1,a=a+1); 的结果 与编译器时的优化 处理 有关。
例如 MS VC++ 编译器,
优化 选择 /O1 结果 3,3
优化 选择 /O2 结果 3,3
优化 选择 /Od 结果 3,2
解释下原由 -- 没硬道理。
程序员自己要注意,模棱两可的语句,最好别用。
热心网友
时间:2022-06-30 21:38
从程序2中可以知道
printf 是从右到左的运算.
所以 printf("%d,%d",a++,a++);
就是 最右边的 a++ 开始执行. 但是这个2个 a++ 是"," 分割的 所以应该 这一行 执行以后a的值才自加.
热心网友
时间:2022-06-30 21:39
printf("%d,%d",a++,a++);这条语句也可能输出2 1,具体要看编译器
热心网友
时间:2022-06-30 21:39
a++是这条语句执行完之后做加法
a=a+1 和++a 相似 是在遇到的时候马上做加法追问额。能给具体的解释下printf("%d,%d",a++,a++);不~
先做哪部然后那部~~
追答先打印 再做两次加法 打印的时候a是1 语句执行完之后 a就是3了