zoukankan      html  css  js  c++  java
  • i++ 与++i ,i+=1 与 i=i+1 的区别

    i++ :先在i所在的表达式中使用i的当前值,后让i加1

    ++i相当于下列代码 
    i += 1; 
    return i; 


    ++i :让i先加1,然后在i所在的表达式中使用i的新值 

     i++相当于下列代码 
    j = i; 
    i += 1; 
    return j;

    -------------------------------------------------------------------------------

    1.x=x+1,x+=1及x++的效率哪个最高?为什么? 
    x=x+1最低,因为它的执行如下。 
    (1)读取右x的地址; 
    (2)x+1; 
    (3)读取左x的地址; 
    (4)将右值传给左边的x(编译器并不认为左右x的地址相同)。 
    x+=1其次,它的执行如下。 
    (1)读取x的地址; 
    (2)x+1; 
    (3)将得到的值传给x(因为x的地址已经读出)。 
    x++最高,它的执行如下。 
    (1)读取右x的地址; 
    (2)x自增1.

    2.x=x+1,和 x+=1; 在什么情况下不成立 而且 x=x+1 是错误的; (类型隐式转换) 
    short x=1; 
    x+=1;   //唯一不同的是它会把结果 隐式转换成需要的数据类型

    x=x+1; //因为 x是 short 类型 .当它+1 会自动转变成int 当是等于又 是 short 类型..所以会报错;

    3.x=x+1,和 x+=1; 在什么情况下不成立 而且 x+=1 是错误的; 
    Object x=”abc”; 
    String y=”def”; 
    x+=y; 
    x=x+y

  • 相关阅读:
    Windows_10 系统封装
    leetcode-75 颜色分类
    leetcode-922 按奇偶排序数组 II
    leetcode-905 按奇偶数排序
    UVA-10827 环面上的最大子矩阵和
    leetcode918 环形最大子数组
    leetcode-85 最大矩形
    leetcode-84 柱状图中的最大矩形
    leetcode-221 最大正方形
    leetcode-713 乘积小于k的数组
  • 原文地址:https://www.cnblogs.com/bigmall/p/7128200.html
Copyright © 2011-2022 走看看