指针作为函数参数
#include <stdio.h>
#define N 4
int main()
{
void max(int(*a)[N], int m);
int a[3][N], i, j;
int(*p)[N];
p = &a[0];
printf("please input :\n");
for (i = 0; i < 3; i++)
for (j = 0; j < N; j++)
scanf_s("%d", &a[i][j]);
max(p, 3); //调用max函数,指针变量作函数参数。
return 0;
}
void max(int(*a)[N], int m) //定义max函数,求每行的最大元素
{
int value, i, j, sum = 0;
for (i = 0; i < m; i++)
{
value = *(*(a + i)); //将第一行的首个元素赋值给value
for (j = 0; j < N; j++)
if (*(a + i) + j > value) //判断其他元素是否小于value
value = *(*(a + i) + j); //把比value大的值再赋给value
printf("第%d行:最大值是:%d\n", i, value);
sum = sum + value;
}
printf("\n");
printf("每行的最大数相加之和是:%d\n", sum);
}