指针应用

1、用数组名常量指针输出二维数组,并将数组中的最大元素及所在行列号输出
#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 "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();
}

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();
}
posted @ 2007-01-19 13:54  齐心  Views(553)  Comments(0Edit  收藏  举报