鱼C论坛

 找回密码
 立即注册
查看: 2099|回复: 7

[已解决]逻辑运算

[复制链接]
发表于 2021-2-20 15:43:01 | 显示全部楼层 |阅读模式
5鱼币
#include <stdio.h>

int main()
{
        int a = 3, b = 3;

        (a = 2) && (b = 5);
        printf("a = %d, b = %d\n", a, b);

        (a = 1) || (b = 5);
        printf("a = %d, b = %d\n", a, b);

        return 0;
}

为什么这样输出是
a=2,b=5
a=2,b=5

不应该是第一个先进行判断吗(a=2)不成立,所以不应该保留a=3吗,
如果仅仅是进行赋值的话,那刚开始定义a=3,b=3又有什么用呢
最佳答案
2021-2-20 15:43:02
林小某 发表于 2021-2-20 17:03
那这样的话,最开始给ab赋值有什么意义呢
直接int a, b;
不可以吗

可以啊,
这题目的目的不就是迷惑你
助你理解的吗?
先像一个初值,然后用一堆花里胡哨的语句变换,最后看你理解不理解的了

最佳答案

查看完整内容

可以啊, 这题目的目的不就是迷惑你 助你理解的吗? 先像一个初值,然后用一堆花里胡哨的语句变换,最后看你理解不理解的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-20 15:43:02 | 显示全部楼层    本楼为最佳答案   
林小某 发表于 2021-2-20 17:03
那这样的话,最开始给ab赋值有什么意义呢
直接int a, b;
不可以吗

可以啊,
这题目的目的不就是迷惑你
助你理解的吗?
先像一个初值,然后用一堆花里胡哨的语句变换,最后看你理解不理解的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-20 15:45:46 | 显示全部楼层
a=2是赋值,不是判断
==才是判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-20 15:52:08 | 显示全部楼层
两点:
第一、赋值语句的值就是所赋的值
第二、逻辑语句短路原则:A&&B,当A为false时,后面的B不执行
C||D,当C为true时,后面的D不执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-20 16:13:10 | 显示全部楼层
=是赋值的意思,你直接把a赋值为了2,把b赋值为了5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-20 17:03:56 | 显示全部楼层
昨非 发表于 2021-2-20 15:52
两点:
第一、赋值语句的值就是所赋的值
第二、逻辑语句短路原则:A&&B,当A为false时,后面的B不执行

那这样的话,最开始给ab赋值有什么意义呢
直接int a, b;
不可以吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-20 17:04:27 | 显示全部楼层
李京 发表于 2021-2-20 15:45
a=2是赋值,不是判断
==才是判断

那刚开始的赋值有什么用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-20 17:06:17 | 显示全部楼层
林小某 发表于 2021-2-20 17:04
那刚开始的赋值有什么用

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 01:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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