C++和Java函数传递数组参数比较

 如果我想实现函数参数传递数组的业务需求,在Java中很容易实现,如下所示。因为Java有.length方法,可以获取数组的长度。

public class Test {
    public static void show(int[] a){
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
    }
    public static void main(String[] args) {
        int[] a = new int[]{1,2,3,4,5,6};
        show(a);
    }
}

 而C++则不然,由于它没有.length方法,它的一般写法如下:

void show(int *a, int length){
    for(int i = 0; i < length; i++){
        cout<<a[i]<<endl;
    }
}

int main(){
    int a[5] = {1,2,3,4,5};
    show(a, 5);
}

 如果想传递二维数组的话,C++写法如下:

void show(int **a, int length){
    for(int i = 0; i < length; i++){
        for(int j = 0; j < length; j++){
                cout<<*((int*)a + length*i + j)<<"	";
        }
        cout<<endl;
    }
}

int main(){
    int a[2][2] = {{1,2},{3,4}};
    show((int **)a, 2);
}

参考博客:http://blog.csdn.net/hongjiqin/article/details/5739935

参考博客:http://blog.csdn.net/liyongbao1988/article/details/7463481

原文地址:https://www.cnblogs.com/DarrenChan/p/7118542.html