c 语言 二维数组的函数参数传递的问题
2012-05-29 15:15
357 查看
二维数组的函数参数传递的问题,以前解决过好几次,总还是忘记,这回总结出来写在这里。
#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");
}
}
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");
}
}
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;
}
#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");
}
}
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");
}
}
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;
}
相关文章推荐
- 关于二维数组做函数参数,传递形参的形式的问题
- C++中关于二维数组作为函数参数传递的问题
- C++中关于二维数组作为函数参数传递的问题
- 关于二维数组作为参数传递给函数的问题
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中的函数参数传递的三种方式--引用作形参
- python函数的参数传递问题---传值还是传引用?
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- C#调用C++写的dll 函数传递参数问题,请有经验的人详细描述
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 函数参数的传递问题(指针的指针)(转)
- 【项目 1 - C/C++语言中函数参数传递的三种方式】
- 第二周 项目1 C/C++语言中函数参数传递的三种方式
- 二维数组作为参数在函数中传递
- golang函数可变参数传递性能问题
- C++指针作为函数的参数进行传递时注意的问题
- C++中关于将fstream对象作为函数参数传递相关问题说明
- 函数参数的传递问题(指针的指针)
- JavaScript中函数作为参数进行传递时的括号问题