C语言 三元运算符 and 运算符优先级

基本语法

条件表达式 ? 表达式 1: 表达式 2;

1) 如果条件表达式为非 0 (真),运算后的结果是表达式 1;
2)如果条件表达式为 0 (假),运算后的结果是表达式 2;
3)口诀: 一灯大师 =》 一真大师

案例演示

#include<stdio.h>
void main(){

    
  int a = 10; 
  int b = 99; 
  int res = a > b ? a++ : b--; // 一真大师 
 // int n1 = a > b ? 1.1 : 1.2; // 警告 double -> int 
  printf("\n a = %d b=%d res=%d", a, b, res); // a = 10 , b=98, res = 99
}  

使用细节

1)表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换), 否则会有精度损失 。
2)三元运算符可以转成 if–else 语句。

课堂练习

1)案例 1:实现两个数的最大值 (a , b )
2)案例 2:实现三个数的最大值

#include<stdio.h>
void main(){

    int a = 10; 
    int b = 100; 
    int c = 199; 
    int max = a > b ? a : b;
    int max2 = max > c ? max : c; 
    int max3 = (a > b ? a : b) > c ? (a > b ? a : b) : c; // ok

    printf("max = %d",max);
    printf("\nmax2 = %d",max2);
    printf("\nmax3 = %d",max3);
}   

运算符优先级小结:

1)结合的方向只有三个是从右向左,其余都是从左向右
2)所有的双目运算符中只有赋值运算符的结合方向是从右向左
3)另外两个从右向左的结合运算符,一个是单目运算,还有一个是三目运算()
4)逗号的运算符优先级最低
5)说一下优先级的大概的顺序 算术运算符 > 关系运算符 > 逻辑运算符(逻辑非! 除外) > 赋值运算符 > 逗号 运算符
6)注意不需要刻意的记, 常用就慢慢有印象.

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值