C/C++数据类型的转换

C/C++数据类型的转换

上节我们介绍了运算符的种类以及优先级。C/C++使用多个运算符的优先级

本节我们介绍数据类型转换。

  • 为什么需要"类型转换":
    参与运算的两个操作数的类型必须相同!
  • 类别:
    • 隐式类型转换
      算术转换
      赋值转换
      输出转换
    • 强制类型转换

隐式类型转换

  • 算术转换
    (+ - * / %)
    char,int,long,long long,float,double
    例如:1.0 / 2 => 1.0 / 2.0 = 0.5
    12 + 0.5 => 12.0 + 0.5 = 12.5
    规则: 小范围的数自动转换成大范围的数。
    注意: 1 / 2.0 = 0;

  • 赋值转换

    #include <iostream>
    
    int main(){
    	int x;
    	x = 3.1415926;
    	std::cout << x << std::endl;
    	
    	return 0
    }
    

    输出结果:

    3
    
  • 输出转换(一般在C语言中)

    #include <stdio.h>
    
    int main(){
    	int x;
    	x = 300;
    	printf("%c",x);
    	
    	return 0
    }
    

    输出结果:

    ,
    

    分析:%c是以字符形式输出,即把x(四字节)强转成char(一个字节)
    300 => 1 0010 1100一个字节只有八位,舍去最高位的1 得到0010 1100
    0010 1100 => (十进制)44 对应ASCII码值为',';

强制类型转换

  • 简单强制类型转换

    #include <iostream>
    
    int main(){
    	float x;
    	x = 3.1415926;
    	std::cout << x << std::endl;
    	std::cout << (int)x << std::endl;
    	return 0
    }
    

    输出结果:

    3.1415926
    3
    

    注意:在强制转换时在需要转换的变量前面使用(类型)

  • 高级强制类型转换

    • static_cast
    • dynamic_cast
    • const_cast
    • reinterpert_cast

本节类型转换讲到这儿,下节我们介绍if语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值