1.4 类型转换和条件运算

1.自动类型转换

1.1 计算时:

  • 当运算符两边 出现不一致的类型时,会自动转换成 较大的类型,大 指的是 能表达的数的范围更大
  • char –> short –> int –> long –> long long
  • int –> floag –> double

1.2 输入输出时:

  • 对于 printf,任何小于int的类型 会被转换成 int; float 会被转换成 double
  • 但是scanf不会,要输入 short,需要用 %hd

2.强制类型转换

把一个量转换成 另一个类型(通常是转换成较小的类型)
比如: (int)10.2; (short)32
需要注意安全性,小的变量不是 总能 表达大的量,如: (short)32768;

#include<stdio.h>

int main()
{
    printf("%d\n", (short)32768); // -32768


    return 0;
}

3.强制类型转换的优先级高于四则运算

通过添加括号调整优先级

#include<stdio.h>

int main()
{
    double a = 1.0;
    double b = 2.0;
    int i = (int)a / b;
    printf("%f\n", i); // 0.000000

    int j = (int)(a / b);
    printf("%f, %d\n", j, j); // 0.000000, 0


    return 0;
}

4.条件运算符

count = (count > 20) ? count - 10 : count + 10;
count > 20 条件满足时,count = count - 10,条件不满足时 count = count + 10

优先级:条件运算符的优先级 高于赋值运算符,低于其他运算符

5.逗号运算符

用来连接两个表达式,结果是 右边的表达式的值
优先级:是所有运算符中最低的,它两边的表达式先计算
组合关系是 自左向右,先计算左边的表达式,右边的表达式的值 作为 逗号表达式的结果

应用的场景很少,可能会用在 for 循环中,如:
for(i = 0, j = 10; i < j; i++, j–)…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值