C++中二维数组作为参数传递到一个函数

如二维数组a在main()中定义,用change(a[][])这个函数,想重新对二维数组a赋值,为什么不可以?参数a[][]如何传递?... 如二维数组a在main()中定义,用change (a[ ][ ])这个函数,想重新对二维数组a赋值,为什么不可以?参数a[ ][ ]如何传递? 展开
 我来答
问明6E
高粉答主

2019-06-18 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13万
展开全部

方法1、 第一维的长度可以不指定;但必须指定第二维的长度。

#include <stdio.h>

void print_a(int a[][5], int n, int m)     

int i, j; 

for(i = 0; i < n; i++) 

for(j = 0; j < m; j++) 

printf("%d ", a[i][j]); 

printf("\n"); 

方法2、指向一个有5个元素一维数组的指针。 

void print_b(int (*a)[5], int n, int m)         

int i, j; 

for(i = 0; i < n; i++) 

for(j = 0; j < m; j++) 

printf("%d ", a[i][j]);

printf("\n"); 

}

方法3、利用数组是顺序存储的特性。

void print_c(int *a, int n, int m)                           

int i, j; 

for(i = 0; i < n; i++) 

for(j = 0; j < m; j++) 

printf("%d ", *(a + i*m + j)); 

printf("\n"); 

}

int main(void) 

int a[5][5] = {{1, 2}, {3, 4, 5}, {6}, {7}, {0, 8}}; 

printf("\n方法1:\n");   

print_a(a, 5, 5); 

printf("\n方法2:\n");   

print_b(a, 5, 5);   

printf("\n方法3:\n");   

print_c(&a[0][0], 5, 5); 

getch(); 

return 0; 

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

胡说八道zq
推荐于2017-09-16 · TA获得超过350个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:155万
展开全部
可以传递二维数组作为参数,有两种方法,
方法一change(int **a)直接传递一个指针进去
方法二change(int a[][10])数组的第二维维度一定要显式指定
追问
a[ ][10]中的那个“10”是什么意思?能解释一下么?
追答
那个10就是你的二维数组的第二维的长度啊,例如你定义int a[5][4],那么就应该是4
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨柳风83
推荐于2017-09-01 · 知道合伙人教育行家
杨柳风83
知道合伙人教育行家
采纳数:4976 获赞数:114085
2009年大学毕业,10年参加工作,在古浪县新堡初级中学教书

向TA提问 私信TA
展开全部
  可以传递二维数组作为参数,有两种方法,
  方法一change(int **a)直接传递一个指针进去
  方法二change(int a[][10])数组的第二维维度一定要显式指定
  假如主函数有一个二维数组int a[10][18];
  写一个函数要传递二维数组,函数原型应该是这个样子
  void f(int (*)a[18]);
  或者 void f(int a[][18]) 必须确定第二维长度是多少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式