关系运算符
逻辑运算符
关系表达式
逻辑表达式
//
// main.c
// project1
//
// Created by sihan guo on 2019/06/13.
// Copyright © 2019 sihan guo. All rights reserved.
//
#include <stdio.h>
#include <stdbool.h>
int main(int argc, const char * argv[]) {
// insert code here...
// < > =< => 优先级相同(高)
//== != 优先级相同(低)
//算术运算符 - 关系运算符 - 赋值运算符(由高到低)
//关系运算符和关系表达式
//c > a+b => c>(a+b) 关系运算符小于算数运算符
//a > b == c => (a>b) == c //都是关系运算符,但是>优先级要 高于 ==
//a == b < c => a == (b<c)
//a = b > c => a = (b > c) 取得一个真值或者假值
//关系表达式:
//用关系运算符将两个表达式连接起来的式子就是关系表达式
//a>b
//a<=c
//关系表达值的结果就是两种: "假" and "真":逻辑值
//判断相等: 5 == 3 : False "=":是赋值符号 "==":逻辑符号
//5 >= 0 "真"
//C语言中,"真":true表示: 也可以用1表示 "假":false表示 也可以用0表示
//true = 1 false = 0
//printf("5>3的值为:%d\n",5>3);//1就表示真
//printf()
if(true == 1)
{
printf("true == 1\n");
}
//return 0;
//分析:
//a = 3,b = 2,c = 1
//(a>b) = c => true == c => true
//以下是逻辑运算符和逻辑表达式 || && !
//用逻辑运算符 将 关系表达式 连接起来的就是 逻辑表达式
//比如:我们希望 a>3 并且 b<4
//则:a>3 && b>4 这个就是逻辑表达式
//逻辑表达式 它的值也是"真"或者"假" 也就是说逻辑表达式的值也为1 或者 0
//&& || !
//&& and 双目运算符 要求有两个运算量 分别位于&&的两侧
//比如:(a>b) && (c>d)
//|| or 逻辑或 是双目运算符
//比如:(a>b) || (c>d)
//! 单目运算符 只有一个运算分量 这个运算分量放在!的后面
//比如:!(a>b)
//运算说明:如下老是用 a代表一堆表达式 b代表一堆表达式
//a && b : 若a and b都是真时 才为真 否则为假
//a || b : 若a || b若其中一个为真 则就是真,否则为假
//! 若a为真 则!a就是假的
//进行逻辑判断时,不等于0时值全部认为是true,总结来说 系统给出的逻辑运算结果不是0就是1,不可能是其他数值
//逻辑表达式中,作为参加逻辑运算的运算对象,是0就表示假,非0就表示真
//举例:
//if(4 == true) //假
//if(4 && 5){} 4是真 5是真 所以这个是真的//真
//if(4)//真 系统认为这就是真的
//常见写法
//(a>b) && (x<y) => a > b && x < y;
//(a == b) || (x == y) => a == b || x == y
//特殊用法演示:
// 'c' && 'd' 真和真在一起 结果就是真的
//逻辑运算符的求值问题
//在逻辑表达式的问题中,不是所有的逻辑运算符都会被执行,只有必须执行下一个逻辑运算符才能求出表达式的结果时才执行该运算符
//a && b && c;
//只有a为非零意思是为真时,才会执行判断b,反正只要有一个是假时整个逻辑的值最后是假
//所以来说只有ab都为真时,才会去判断c
//假
if(3>5 && 4<6 && 5>1){
printf("结果是false");
}
int a = 1;
if(3<5 && (a = 8)){
printf("条件成立\n");
}
//同理 a || b || c 只要a为真了,就没必要判断下面的语句是否为真了
if( 3>5 || (a = 8))
{
printf("条件成立2\n");
}
}