标签:style c tar color int strong
1、四种表示a[i][j]的形式是等价的:
a[i][j]==*(a[i]+j)==*(*(a+i)+j)==(*(a+i))[j]
2、通过行指针p引用二维数组a的元素a[i][j]的方法可用以下4种等价形式:
p[i][j]==*(p[i]+j)==*(*(p+i)+j)==(*(p+i))[j]
3、对指向二维数组的行指针p进行初始化的方法:
p=a 或p=&a[0]
4、对指向二维数组的列指针进行初始化的方法(以下三种方法等价):
p=a[0] 或 p=*a 或 p=&a[0][0]
5、二维数组元素的输入输出:
(1)、二维数组作形参:如
#include<stdio.h>
#define N 4
void Inputarray(int p[][N],int
m,int n);
void Outputarray(int p[][N],int m,int n);
int
main()
{
int a[3][4];
printf("Input 3*4
numbers:\n");
Inputarray(a,3,4);
Outputarray(a,3,4);
return
0;
}
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");
}
}
(2)、二维数组的行指针作形参:如 (3)、
#include<stdio.h> //列指针作形参,适应数组列数的变化//
#define
N 4
void Inputarray(int (*p)[N],int
m,int n); 或者//
int *p,int m,int n //
void Outputarray(int
(*p)[N],int m,int n); 或者//int
*p,int m,int n //
int main()
{
int
a[3][4];
printf("Input 3*4 numbers:\n");
Inputarray(a,3,4);
//*a,3,4 //
Outputarray(a,3,4);
// *a,3,4 //
return 0;
}
void Inputarray(int
(*p)[N],int m,int
n) //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)+j);
//&p[i*n+j]
//
}
}
}
void Outputarray(int (*p)[N],int m,int
n) //int
*p//
{
int
i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4d",*(*(p+i)+j));
// p[i*n+j]
//
printf("\n");
}
}
标签:style c tar color int strong
原文地址:http://www.cnblogs.com/hnzsb-vv1130/p/3722020.html