Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482128
  • 博文数量: 98
  • 博客积分: 3265
  • 博客等级: 中校
  • 技术积分: 1227
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 00:29
文章分类

全部博文(98)

文章存档

2012年(6)

2011年(83)

2010年(9)

分类: C/C++

2011-04-10 09:15:59

//求最大值

#include
main ( )
{
    int sub_max(); / * 函数声明* /
    int n,a[10],*ptr=a; / *定义变量,并使指针指向数组* /
    int max;
    for(n=0 ; n <= i-1 ; n++) / *输入数据* /
    scanf("%d",&a[n]) ;
    max = sub_max(ptr,10) ; / * 函数调用,其实参是指针* /
    printf("max = %d\n",max) ;
}
int sub_max(b,i) / * 函数定义,其形参为数组* /
int b[],i;
{
    int temp,j;
    temp = b[0] ;
    for(j=1;j<=9;j++)
if(temp    return temp;
}
b数组在内存与a 数组具有相同地址,即在内存完全重合。在子程序中对数组b 的操作,与操
作数组a 意义相同。
运行程序:
1 3 5 7 9 2 4 6 8 0
max = 9



//采用指针变量作子程序的形式参数。
#include
main()
{
    int sub_max();
    int n,a[10],*ptr=a;
    int max;
    for(n=0; n<=9; n++)
    scanf("%d", &a[n]) ;
    max = sub_max(ptr, 10) ;
    printf("max = %d\n", max) ;
}
int sub_max(b,i) / *形式参数为指针变量* /
int *b,i; //b=ptr=a的地址
{
    int temp,j;
    temp = b[0] ; / *数组元素指针的下标法表示* /
    for (j=1; j<=i-1; j++)
    if(temp    return temp;
}

运行程序:
1 3 5 7 9 2 4 6 8 0
m a x = 9



//数组元素还可以用指针表示。
#include
main()
{
    int sub_max();
    int n,a[10],*ptr=a;
    int max;
    for(n=0; n<=9; n++)
    scanf("%d", &a[n]) ;
    max = sub_max(ptr, 10) ;
    printf("max = %d\n", max) ;
}
int sub_max(int *b,i) / *形式参数为指针变量* /
int *b,i; //b=ptr=a的地址
{
    int temp,j;
temp = *b++ ; ; / *数组元素指针的下标法表示* /
    for(j=1; j<=i-1; j++)
if(temp<*b)   temp=*b++;
    return temp;
}

运行程序:
1 3 5 7 9 2 4 6 8 0
max = 9



//在子程序中不仅找最大元素,同时还要将元素的下标记录下来。
#include
main()
{
    int *max();/* 函数声明* /
    int n,a[10],*s,i;
    for(i=0; i<10; i++) / * 输入数据* /
    scanf("%d",a+i);
    s = max(a, 10) ; / *S是一个整型的指针* /
    printf("max = %d,index = %d\n",*s,s-a) ;
}
int *max(a,n) / *定义返回指针的函数* /
int *a,n;
{
    int *p,*t; / * p 用于跟踪数组,t用于记录最大值元素的地址* /
    for(p=a, t=a; p-a        if(*p>*t)   t=p;
    return t; //将指针t返回
}

程序运行:

1 3 5 7 9 2 4 6 8 0
max = 9 , index = 4

我们知道,二维数组在内存中是按行存放,假定我们定义二维数组和指针如下:
int a[3][4],*p = a[0];
则指针p就指向二维数组。其在内存的存放情况如图

阅读(1624) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~