c语言c++语言如何用二维数组做形参?

Python013

c语言c++语言如何用二维数组做形参?,第1张

C/C++中,二维数组的第一维的每一个元素都是一维数组。所以,用指向一维数组的指针或用第一维维数空缺的二维数组作为函数的形式参数都能达到目的。设处理数组为int型,举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

void myprint(int (*p)[5]){//p是指向有5个int型元素的一维数组的指针

//void myprint(int p[][5]){//这样写效果是一样的

    int i,j

    for(i=0i<3i++){

        for(j=0j<5printf("%3d",p[i][j++]))

        printf("\n")

    }

}

int main(void){

    int a[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}}

    myprint(a)

    return 0

}

编译器实际处理多维数组是把一维数组分段处理的,也就是说实际上并不存在多维数组,多维数组仅仅是个逻辑概念。

例如下面这个:

int fun(int a[2][3],int n)

或者

int fun(int a[][3],int n)

要指出列数是多少,行数写不写都一样,行数要通过n进行传递。

假设

int b[2][3]={}

则调用的时候可以写:

fun(b,2)