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

[复制链接]
查看11 | 回复5 | 2017-10-5 18:54:00 | 显示全部楼层 |阅读模式
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=0;i<3;i++){
for(j=0;j<5;printf("%3d",p[j++])); ...
回复

使用道具 举报

千问 | 2017-10-5 18:54:00 | 显示全部楼层
二维数组做形参?C++的数组用形参的时候非常之弱,你确定你需要它?N维数组做形参必须指定后n-1维的大小,不然编译器无法知道如何使用它,如void func(int a[][10]) 或 void func2(int b[][10][10])虽然写是可以这样子写,不过,其实上面那种代码等价于void func(int (*a)[10]...
回复

使用道具 举报

千问 | 2017-10-5 18:54:00 | 显示全部楼层
作为形参时函数的定义:返回值类型 函数名(数组类型 数组名[第一维大小][第二维大小])说明:注意二维数组定义时第二维大小不能省略,第一维大小可省。作为实参时:实参直接写二维数组名即可。例:void Output(int _arrA[][4]);//定义函数,注意二维数组定义或者作为参数时第二维大小必须有int main(){.....
回复

使用道具 举报

千问 | 2017-10-5 18:54:00 | 显示全部楼层
要么你告诉他这是个二维数组int arr[N][N]要么自己决定偏移量int * arr*(*(arr+x)+y)...
回复

使用道具 举报

千问 | 2017-10-5 18:54:00 | 显示全部楼层
int array[m][n];func(int * arry[n]){}main(){
func(array);}这样调用...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行