/************************
指针与二维数组
输入一个三行四列的数组,并输出元素值
用二维数组做函数形参
#include <stdio.h>
#define N 4 //此处N应与主函数二维数组第二列长度一致,否则报“数组下标不一致以及形参与实参类型不一致”
void InputArray(int p[][N],int m,int n) //形参声明为列数已知的二维数组,输入数组元素
{
int i,j;
for(i = 0;i<m;i++)
{
for(j = 0;j<n;j++)
{
scanf("%d",&p[i][j]);
}
}
}
void OutputArray(int p[][N],int m,int n) //形参声明为列数已知的二维数组,输出数组元素
{
int i,j;
for(i = 0;i<m;i++)
{
for(j = 0;j<n;j++)
{
printf("%4d",p[i][j]);
}
printf("\n");
}
}
int main()
{
int a[3][4];
printf("input 12(3*4) number:\n"); //输入溢出,不会写入数组
InputArray(a,3,4); //向函数传递二维数组第0行地址
OutputArray(a,3,4); //向函数传递二维数组第0行地址
return 0;
}
/**********************
用二维函数组的行指针作为函数形参
主函数调用函数变为指针
**********************/
#include <stdio.h>
#define N 4
void InputArray(int *p,int m,int n)
{
int i,j;
for(i = 0;i<m;i++)
{
for(j = 0;j<n;j++)
{
scanf("%d",&p[i*n+j]);
}
}
}
void OutputArray(int *p,int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",p[i*n+j]); //数组元素的地址
}
printf("\n");
}
}
int main()
{
int a[3][4];
printf("input 12(3*4) number:\n");
InputArray(*a,3 ,4);
OutputArray(*a,3 ,4);
return 0;
}
指针与二维数组
输入一个三行四列的数组,并输出元素值
用二维数组做函数形参
*************************/
#include <stdio.h>
#define N 4 //此处N应与主函数二维数组第二列长度一致,否则报“数组下标不一致以及形参与实参类型不一致”
void InputArray(int p[][N],int m,int n) //形参声明为列数已知的二维数组,输入数组元素
{
int i,j;
for(i = 0;i<m;i++)
{
for(j = 0;j<n;j++)
{
scanf("%d",&p[i][j]);
}
}
}
void OutputArray(int p[][N],int m,int n) //形参声明为列数已知的二维数组,输出数组元素
{
int i,j;
for(i = 0;i<m;i++)
{
for(j = 0;j<n;j++)
{
printf("%4d",p[i][j]);
}
printf("\n");
}
}
int main()
{
int a[3][4];
printf("input 12(3*4) number:\n"); //输入溢出,不会写入数组
InputArray(a,3,4); //向函数传递二维数组第0行地址
OutputArray(a,3,4); //向函数传递二维数组第0行地址
return 0;
}
/**********************
用二维函数组的行指针作为函数形参
主函数调用函数变为指针
**********************/
#include <stdio.h>
#define N 4
void InputArray(int *p,int m,int n)
{
int i,j;
for(i = 0;i<m;i++)
{
for(j = 0;j<n;j++)
{
scanf("%d",&p[i*n+j]);
}
}
}
void OutputArray(int *p,int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",p[i*n+j]); //数组元素的地址
}
printf("\n");
}
}
int main()
{
int a[3][4];
printf("input 12(3*4) number:\n");
InputArray(*a,3 ,4);
OutputArray(*a,3 ,4);
return 0;
}