Java [k+;+;]=l[i+;+;]符号是什么意思

Java [k+;+;]=l[i+;+;]符号是什么意思,java,mergesort,Java,Mergesort,我试图找出这个用于合并排序的合并函数,但我不理解a[k++]=l[I++]行。有人能给我一个非简化版的吗 public static void merge(int[] a, int[] l, int[] r, int left, int right) { int i = 0, j = 0, k = 0; while (i < left && j < right) { if (l[i] <= r[j]) {

我试图找出这个用于合并排序的合并函数,但我不理解a[k++]=l[I++]行。有人能给我一个非简化版的吗

public static void merge(int[] a, int[] l, int[] r, int left, int right) {
 
    int i = 0, j = 0, k = 0;
    while (i < left && j < right) {
        if (l[i] <= r[j]) {
            a[k++] = l[i++];
        }
        else {
            a[k++] = r[j++];
        }
    }
    while (i < left) {
        a[k++] = l[i++];
    }
    while (j < right) {
        a[k++] = r[j++];
    }
}
publicstaticvoidmerge(int[]a,int[]l,int[]r,int-left,int-right){
int i=0,j=0,k=0;
而(i
a[k] = l[i];
k = k + 1;
i = i + 1;
a[k] = l[i];
k = k + 1;
i = i + 1;
print(k);
print(i);

假设
k=3
i=5

a[k++] = l[i++];
print(k);
print(i);
输出:46

a[k] = l[i];
k = k + 1;
i = i + 1;
a[k] = l[i];
k = k + 1;
i = i + 1;
print(k);
print(i);
输出:46


在java中?或者说你是在谈论C?@ asasq:实际上我指的是C或C++。我添加了缺少的语言标签。在这个过程中指定了评价顺序,所以甚至像<代码> [i++]=b[i+++ ]这样的恐怖。
已定义。但注释中指出:建议代码不要完全依赖于此规范。当每个表达式最多包含一个副作用(作为其最外层的操作)时,以及当代码不完全依赖于表达式从左到右求值所产生的异常时,代码通常更清晰。