鱼C论坛

 找回密码
 立即注册
查看: 1082|回复: 2

[已解决]算数运算问题

[复制链接]
发表于 2021-10-29 00:30:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

void main()
{
        int a=15,b=15,c=15,d=15,q,p;
        q=a%3 && a%5 || a++>++b;
        p=c++>++d || c%3 && c%5;
        printf("q=%d  p=%d \n",q,p);
}

结果是: q=0  p=1

为什么两个运算结果不同?运算的过程是怎么样的?
最佳答案
2021-10-29 09:30:19
本帖最后由 傻眼貓咪 于 2021-10-29 09:35 编辑
运算符优先级:
运算符 ++ % > 或 < && || =
优先级 2 3 6 11 12 14

你的代码:a = 15, b = 15, c = 15, d = 15
q = a%3 && a%5 || a++ > ++b;
q = 15%3 && 15%5 || 15++ > ++15; // 这里最优先级是 ++。先处理 ++b(注:这里的 ++ 在右边,最后处理)
q = 0 && 0 || 15++ > 16; // 这里最优先级是 %。先处理 a%3 和 a%5
q = 0 && 0 || 0(false); // 这里最优先级是 >。先处理 16 > b++
q = 0 || 0(false); // 这里最优先级是 &&。先处理 0 && 0
q = 0; // 这里最优先级是 ||。先处理 0 || 0


p = c++ > ++d || c%3 && c%5;
p = 15++ > ++15 || 15%3 && 15%5;
p = 15++ > 16 || 15%3 && 15%5;
p = 0 || 16%3 && 16%5; // 这里和上面不同的是(++ 在 || 左边,先执行 ++)
p = 0 || 1 && 1;
p = 1;



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-29 03:09:51 | 显示全部楼层

回帖奖励 +1 鱼币

q=a%3 && a%5 || a++>++b;
q=15%3 && 15%5 || 15 > 16
q=0 && 0 || 0
q=0 || 0
q=0

p=c++>++d || c%3 && c%5;
p=15 > 16 || 16%3 && 16%5
p=0 || 1 && 1
p=0 || 1
p=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-29 09:30:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 傻眼貓咪 于 2021-10-29 09:35 编辑
运算符优先级:
运算符 ++ % > 或 < && || =
优先级 2 3 6 11 12 14

你的代码:a = 15, b = 15, c = 15, d = 15
q = a%3 && a%5 || a++ > ++b;
q = 15%3 && 15%5 || 15++ > ++15; // 这里最优先级是 ++。先处理 ++b(注:这里的 ++ 在右边,最后处理)
q = 0 && 0 || 15++ > 16; // 这里最优先级是 %。先处理 a%3 和 a%5
q = 0 && 0 || 0(false); // 这里最优先级是 >。先处理 16 > b++
q = 0 || 0(false); // 这里最优先级是 &&。先处理 0 && 0
q = 0; // 这里最优先级是 ||。先处理 0 || 0


p = c++ > ++d || c%3 && c%5;
p = 15++ > ++15 || 15%3 && 15%5;
p = 15++ > 16 || 15%3 && 15%5;
p = 0 || 16%3 && 16%5; // 这里和上面不同的是(++ 在 || 左边,先执行 ++)
p = 0 || 1 && 1;
p = 1;



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 05:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表