栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

函数类型的定义:如何知道要自己要定义的函数类型

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

函数类型的定义:如何知道要自己要定义的函数类型

函数类型的定义:如何知道要自己要定义的函数类型 前言

第一次独立做C语言项目编程练习,面对一个题目,从无到有,可能会令一些道友感到无从下手。而算法的杂乱与一些简单工厂的配合性问题,可能会是此时的罪恶源泉之一。而关于各种函数类型的定义,又是其中一大因素。

一个例子
//寻找最大数
struct Student* findMaxStu(struct  Student *p, int len) //四、所以此要得到max的函数类型定义为为结构体指针型struct Student*
{
	int i;
	struct Student *max = p;			//二、max要与p同类型
	for(i=0;iscore < p->score){                    //一、max->score与p->score大小比较
			max = p;
		}
		p++;
	}
	return max;			//三、我所要得到的是max,struct Student*型
}

如上图所示,是一个寻找最大数的例子。
我将思考步骤分解为一、二、三、四。而仅第一步需要稍微动下脑筋:你一定会思考,我要是找到最大数通常一定会通过比较的形式来取得,而max与谁比较就是你要思考的。
如上:一、想定义max->score与p->score大小比较 ————>max->score与p->score是一种形式。自然而然:
二、定义max要与p同类型。最后我想返回有max:
三、我所要得到的max是 struct Student* 型。故定义:
四、所以此要得到max的函数类型定义为结构体指针型struct Student
*

为防止第一张图片代码显示不全,无法了解, 故将后边代码补全,如下所示,才高八斗者,自行忽略
#include 
#include 
//定义的结构体
struct Student
{
	int score;
	char *name;
};
//结构体指针函数初始化
struct Student* initStuScores(int len)
{
	int i;
	struct Student *p = (struct Student *)malloc(len*sizeof(struct Student));
	for(i=0;iname = (char *)malloc(128);
		scanf("%s",p->name);
		printf("Input student%d scoren",i+1);
		scanf("%d",&(p->score));
		p++;
	}
	return p-len;
}
//打印一遍
void printMes(struct Student *p, int len)
{
	int i ;
	for(i=0;i<5;i++){
		printf("名字 %s,分数 %dn",p->name,p->score);
		p++;
	}
	p=p-len;
}
//MAX位置...
//主程序
int main()
{	
	int len=0;
	printf("input total num:n");
	scanf("%d",&len);
	struct Student *pstus = initStuScores(len);
	printMes(pstus, len);
	findMaxStu(pstus, len);
	system("pause");
	return 0;
}
话不多说,就这一个例子。

函数类型自行定义,像不打算返回max直接从函数中打印,void都是随意的,总之,不要太过犹豫,干就完了。写这个就是为了在如何都能冲到终点的前提下,理清一下我们起点到终点的路口有哪些,门清而已。

第一次写这东西,若说不清还耽误您时间,那实属抱歉。

言者所以在意,得意而忘言,余歉为此,然余之本意以勉竭绵薄,以助有需之人而矣。余深知己底尚薄,若有错,蒙以陈师颜,余之大过也。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347487.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号