指针应用
1、用数组名常量指针输出二维数组,并将数组中的最大元素及所在行列号输出
3、用指向一维数组的行指针输出二维数组,并将数组中的最大元素及所在行列号输出
#include "stdio.h"
#include "conio.h"
void main()
{
int i,j,m,n,max;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
m=0;n=0;
max=**a; /*第一元素赋给max,**a等价于*(*(a+0)+0)*/
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
printf("%5d",*(*(a+i)+j));
if(max<*(*(a+i)+j))
{
max=*(*(a+i)+j);
m=i;n=j;
}
}
}
printf("\nmax is :a[%2d][%2d]=%-5d",m,n,max);
getch();
}
2、用指向数组元素的指针输出二维数组,并将数组织中的最大元素及所在行列号输出 #include "conio.h"
void main()
{
int i,j,m,n,max;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
m=0;n=0;
max=**a; /*第一元素赋给max,**a等价于*(*(a+0)+0)*/
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
printf("%5d",*(*(a+i)+j));
if(max<*(*(a+i)+j))
{
max=*(*(a+i)+j);
m=i;n=j;
}
}
}
printf("\nmax is :a[%2d][%2d]=%-5d",m,n,max);
getch();
}
#include "stdio.h"
#include "conio.h"
void main()
{
int i,j,m,n,max;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
m=0;n=0;
int *p;
p=a[0]; /*指针p指向数组a的第0行*/
max=*p; /*先把第一个元素最为最大值*/
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
printf("%5d",*p);
if(max<*p)
{
max=*p;
m=i;n=j;
}
p++;
}
}
printf("\nmax is :a[%2d][%2d]=%-5d",m,n,max);
getch();
}
#include "conio.h"
void main()
{
int i,j,m,n,max;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
m=0;n=0;
int *p;
p=a[0]; /*指针p指向数组a的第0行*/
max=*p; /*先把第一个元素最为最大值*/
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
printf("%5d",*p);
if(max<*p)
{
max=*p;
m=i;n=j;
}
p++;
}
}
printf("\nmax is :a[%2d][%2d]=%-5d",m,n,max);
getch();
}
3、用指向一维数组的行指针输出二维数组,并将数组中的最大元素及所在行列号输出
#include "stdio.h"
#include "conio.h"
void main()
{
int i,j,m,n,max;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
m=0;n=0;
int (*p)[4]; /*定义p为指向一个有4个元素的一维数组的指针变量*/
p=a; /*p指向第0行*/
max=**p; /*将第一个元素送max,**p相当于*(*(p+0)+0)*/
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
printf("%5d",*(*p+j));
if(max<*(*p+j))
{
max=*(*p+j);
m=i;n=j;
}
}
p++; /*指向下一行*/
}
printf("\nmax is :a[%2d][%2d]=%-5d",m,n,max);
getch();
}
#include "conio.h"
void main()
{
int i,j,m,n,max;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
m=0;n=0;
int (*p)[4]; /*定义p为指向一个有4个元素的一维数组的指针变量*/
p=a; /*p指向第0行*/
max=**p; /*将第一个元素送max,**p相当于*(*(p+0)+0)*/
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
printf("%5d",*(*p+j));
if(max<*(*p+j))
{
max=*(*p+j);
m=i;n=j;
}
}
p++; /*指向下一行*/
}
printf("\nmax is :a[%2d][%2d]=%-5d",m,n,max);
getch();
}