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)<<"\t"; } 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