• 指针函数


    指针函数是指函数的返回值是指针类型的函数。

    一个函数的返回值能够是整数,实型和字符类型。也能够是指针类型。指针类型的定义形式举比例如以下:

    float* fun(int a,int b);

    当中,fun是函数名,前面的“*”说明返回值的类型是指针类型,由于前面的类型标识是float,所以返回的指针指向浮点型。

    该函数有两个參数,參数类型是整型。

    通过一个题目学校指针函数的使用方法。

    比如:如果若干个学生的成绩在二维数组中存放,要求输入学生的编号。用指针函数实现其成绩的输出。

    分析:主要考察指针函数的使用。学生成绩放在二维数组中,一行存放一个学生的成绩,通过输入学生编号。返回该学生存放成绩的地址,然后利用指针訪问学生的每一门课程成绩。并输出。

    程序实现例如以下:

    #include<stdio.h>
    int *FindAddress(int (*ptr)[4],int n);//声明查找成绩行地址函数
    void Display(int a[][4],int n,int *p);//声明输出成绩函数
    int main()
    {
    	int row,n=4;
    	int *p;
    	int score[3][4]={{76,87,85,81},{67,61,71,60},{81,89,82,78}};
    	printf("请输入学生的编号(1或2或3).输入0退出程序.
    ");
    	scanf("%d",&row);//输入要输出学生成绩的编号
    	while(row)
    	{
    		if(row==1||row==2||row==3)
    		{
    			printf("第%d个学生的成绩4门课的成绩是:
    ",row);
    			p=FindAddress(score,row-1);//调用指针函数
    			Display(score,n,p);//调用输出成绩函数
    			printf("请输入学生的编号(1或2或3).输入0退出程序");
    	        scanf("%d",&row);
    		}
    		else
    		{
                printf("输入不合法,又一次输入(1或2或3).输入0退出程序");
    	        scanf("%d",&row);
    		}
    	}
    	return 0;
    }
    int* FindAddress(int (*ptrScore)[4],int n)//查找学生成绩行地址函数的实现
    //通过传递的行地址找到要查找学生成绩的地址。并返回行地址
    {
    	int *ptr;
    	ptr=*(ptrScore+n);//改动行地址。即找到学生的第一门课成绩的地址
    	return ptr;
    }
    void Display(int a[][4],int n,int *p)
    //输出学生成绩的实现函数。利用传递过来的指针输出每门课的成绩
    {
    	int col;
    	for(col=0;col<n;col++)
    	     printf("%5d",*(p+col));//输出查找学生的每门课成绩
    	printf("
    ");
    }
    程序执行结果:


    在程序中,主函数通过调用函数FindAddress(score,row-1),把二维数组的行地址传递给*FindAddress(int (*ptrScore)[4],int n)的形式參数ptrScore,执行语句ptr=*(ptrScore+n),然后返回行指针ptr,调用Display(score,n,p)输出成绩。p+col

    是改变列地址。即找到该学生成绩的每门课的位置,逐个输出每门课成绩。

  • 相关阅读:
    【iOS CocoaPods篇】iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告
    【iOS CocoaPods篇】iOS 10.10 10.11 10.12 安装升级CocoPods
    iOS程序中的内存分配 栈区堆区全局区(转)
    retain和strong、assign和weak的区别(转)
    (ios实战):retain,copy,assign及autorelease ,strong,weak(转)
    malloc()与 alloc()区别 (转)
    iOS开发--KVC&KVO
    iOS开发之支付功能概述(转)
    disptch_after 自递归
    makeObjectsPerformSelector 方法的用法
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8435830.html
Copyright © 2020-2023  润新知