|

楼主 |
发表于 2017-12-21 12:46:28
|
显示全部楼层
你说的应该不对。
应该是:
N = 5时
a[N++]=N; ==> 得到 a[5] = 6 , N =6 //第一步 先计算了索引量,而后置自增运算符是先让表达式使用了操作数的值,再//让操作数自增一 , 第二步再执行赋值运算
对于a[N] = N++; ==> 得到a[5] = 5 , N = 6,也是先计算索引量,然后再赋值,最后自增、
不信你看如下代码- public class Test2 {
- public static void main(String[] args){
- int N = 5;
- int[] a = new int[10];
- System.out.println("下面是数组a初始化的结果:");
- for(int i = 0;i < a.length;i++)
- System.out.println("a["+i+"] = "+ a[i]); // 由于未赋值进行数组内容的初始化,元素均为零
- a[N++] = N; // 第一种表示法
- System.out.println("下面是采用索引量后置自增运算的结果:");
- for(int i = 0;i < a.length;i++)
- System.out.println("a["+i+"] = "+ a[i]); // a[5] = 6
- System.out.println("N = "+ N); // 此时N = 6
- N = 5;
- int[] b = new int[10];
- b[N] = N++; // 第二种表示法
- System.out.println("下面是采用另一种后置自增运算的结果:");
- for(int i = 0;i < b.length;i++)
- System.out.println("b["+i+"] = "+ b[i]); // b[5] = 5
- System.out.println("N = "+ N); // 此时N = 6
- }
- }
复制代码
|
|