前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java/C++强制类型转化 | 自增自减运算符 对比

Java/C++强制类型转化 | 自增自减运算符 对比

作者头像
CtrlX
发布2022-12-02 11:36:39
6250
发布2022-12-02 11:36:39
举报
文章被收录于专栏:C++核心编程C++核心编程

Java

数据类型转换

1.自动类型转化

相互兼容的多种数据类型在运算时,小转大即为自动类型转换。

代码语言:javascript
复制
10 + 1.0 =》10.0 + 1.0

2.强制类型转化

相互兼容的多种数据类型在运算时,大转小即为自动类型转换。

在java中,数据类型相互兼容,在运算时,必须保证表达式中的参与运算的数据的所有数据类型保持一致。

案例:

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) {
        int c = 10;
        int d = c + 1.5;//报错
    }
}

分析:报错原因

c + 1.5 转换成了10.0 + 1.5,结果是11.5,占8个字节,而d是一个只能存储4个字节的变量,所以报错。

解决:

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) {
        int c = 10;
        int d = c + 1.5;//报错
        
        double d = c + 1.5;//方法一
        d += c;//方法二,等同于d =(int)(d + c);
    }
}

分析:+= 还有强制转换的功能。其他的递增递减运算符也有等同效果。

自增自减运算符

案例:分析下面代码的执行过程

代码语言:javascript
复制
int c = 10;
int b = c++ + ++c;//10+12
int b = ++c + c++;//11+11

容易知道结果是22,但是不知道是11+11还是10+12

分析:

在java中代码都是从左往右一次执行,因此c++ 先执行,++C后执行

c++ => C = 10 ; => c =11;

++c => c = 12

在表达式中,除了有++运算符之外还有其他的运算符时,++在前就先自加,然后再利用自加后的结果参与运算。

C++

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java
    • 数据类型转换
      • 自增自减运算符
      • C++
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档