3.运算符与表达式

3.2 算术运算符与关系运算符

3.2.1 运算符分类

运算符举例
算术运算符+ - * / %
关系运算符< > == <= >= !=
逻辑运算符! && ||
赋值运算符=
求字节数运算符sizeof
强制类型转换运算符(类型)
位运算符<< >> ~ | ^ &
指针运算符* &
分量运算符.->
下标运算符[]

3.2.2 算术运算符及算术表达式

  • 乘除取余优先级大于加减
  • 除%外,算术运算符都适用于整数型和浮点型计算,%只能用于整数型计算
  • 除号/两侧操作数都是整型数时,执行整除运算,其他情况下,执行浮点型除法
#include <stdio.h>

int main() {
    int res;
    res = 4+5*2-6/3+10%4;
    printf("%d\n",res);
    return 0;
}

3.2.3 关系运算符与关系表达式

  • 关系表达式只有真和假,C没有布尔类型,因此0为假,1为真
  • 等于运算符的技巧,将常量写在左边,变量写在右边,如5==a
  • 三个值以上的等于判断,不能连着写,如“a==b==c”应该写成“a==b && b==c”
  • 三个值以上的比较判断,不能连着写,如“25<a<50”,应写成“a>25 && a<50”
#include <stdio.h>

int main() {
    int a;
    while (scanf("%d", &a)) //输入非整型时结束while循环
    {
        if(3<a<5) //无论输入什么数都是正确的,因为0或1都小于5
        {
            printf("a is between 3 and 5\n");
        }else
        {
            printf("a is not between 3 and 5\n");
        }
    }
    return 0;
}

3.2.4 运算符优先级

简单说就是:!>算术运算符>关系运算符>&&>||>赋值运算符

3.3 逻辑运算符、赋值运算符、求字节运算符

3.3.1 逻辑运算符与逻辑表达式

  • 逻辑非优先级高于算术运算符,逻辑或、逻辑与优先级低于关系运算符
#include <stdio.h>

int main() {
    int year;
    while(scanf("%d",&year))
    {
        if(year%4==0 && year%100!=0 || year%400==0)
        {
            printf("It's a leap year!\n");
        }else{
            printf("It's not a leap year!\n");
        }
    }
    return 0;
}

  • 短路运算:逻辑与短路计算,当前面表达式为假时,后面内部不执行;逻辑或短路计算,当前面表达式为真时,后面内部不执行;
// 短路运算
int main() {
    int i=0;
    i&&printf("You can't see me!\n"); //逻辑与,前面为0时后面不输出
    i=1;
    i||printf("You can't see me!\n"); //逻辑或,前面为1时后面不输出
    return 0;
}

3.3.2 赋值运算符

  • 左值:赋值运算符左边的值,右值:赋值运算符右边的值
  • 被赋值的变量必须放在左边
  • 复合赋值运算,即可以对变量自身运算,简化代码
#include <stdio.h>

int main() {
    int i=10,j=3;
    i+=5;
    j*=i;
    printf("i=%d,\nj=%d\n",i,j);
    return 0;
}

3.3.3 求字节运算符sizeof

  • sizeof是运算符,不是函数
  • sizeof可以求常量或变量的空间大小
#include <stdio.h>

int main() {
    int i=5;
    printf("i size is %d\n",sizeof(i));
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值