4-1 强制类型转化与隐式类型转化

#include <stdio.h>

int main()
{
    short s=0x1122;
    int i=(int) s;
    //强制类型转换 目标类型能容纳 结果不变
    char c=(char) s;
    //强制类型转换 目标类型不能容纳目标值 截断 高位舍弃 低位保留
    printf("0x%x\n",i);
    printf("0x%x\n",c);
    //强制类型转换由程序员主动进行

    char c1=s;
    //复制表达式中 隐式类型转换 转换为左边类型 目标类型不能容纳目标值 截断 高位舍弃 低位保留
    printf("0x%x\n",c1);

    char c2='a';
    int j=100;
    printf("%d\n",sizeof(c2+j));
    //算数运算中 隐式类型转换 低类型(char)转换为(int) 参与计算



    //隐式类型转换由编译器进行发生的情况:
    //1.算术表达式
    //2.赋值表达式
    //3.函数调用
    //4.函数返回值



    return 0;
}

在这里插入图片描述

1.强制类型转化由程序员主动进行,若目标类型能容纳目标值则结果不变,若目标类型无法容纳目标值,则高位舍弃低位保留。

2.隐式类型转化由编译器完成,发生在4种情况

隐式类型转换由编译器进行发生的情况:
1.算术表达式
2.赋值表达式
3.函数调用
4.函数返回值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值