写一个函数,将一个int型的数组做为参数传入,使用指针返回两个结果:最大值和最小值


今日下午研究了一下c语言中的指针问题,c语言的核心是指针,指针的核心是地址,地址的核心是内存。

#include <stdio.h>

void hanshu(int *arry,int size,int *m,int *n)
{
    *m=arry[0];
    *n=arry[1];
    for(int i=0;i<size;i++)
    {
        if(arry[i]>*m)
            *m=arry[i];
        if(arry[i]<*n)
            *n=arry[i];
    }
}

int main(int argc, const char * argv[]) {。


    int a[]={1,2,3,4,5,6};//定义一个六个数据的数组
    int max;//存放最大值
    int min;//存放最小值
    hanshu(a, 6, &max, &min);//函数传送数组,并将最大值,最小值的地址传送
    printf("The maxnumber is %d\n",max);
    printf("The minnumber is %d\n",min);
    return 0;
}

在main函数中定义了一个数组,并且定义了一个max和一个min来保存数组中的最大值和最小值。

在函数hanshu中传递的值包括数组的首地址,数组的长度,以及最大值的地址和最小值的地址。在void hanshu中,先为最大值和最小值赋一个初值。并使用一个for循环,来遍历数组中的所有值,并将最大的值赋给*m,最小值赋给*n。这时,最大值的指针指向的是最大值的地址,最小值的指针指向的是最小值的地址。完成运算


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM