C语言讲义——函数

为实现特定目的而编写的一段可被调用的代码
简单地讲:函数就是一组语句,取了个名字

别名:子例程(routine)/方法(Method,一般面向对象的语言使用这个叫法)

函数的组成部分

以主函数为例:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
	return 0;
}
返回类型 int
函数名 main
参数 (int argc, char *argv[])
函数体 { return 0; }

函数三类

函数分三种:main函数、系统函数、自定义函数。

int main(int argc, char *argv[]) {// main:主函数
	int ret = printf("震惊!
");// printf:系统函数
	printf("打印字符数:%d",ret);// printf:系统函数
	return 0;
}
#include <stdio.h>	
// 自定义函数:先定义,再使用	
int max( int num1, int num2 ) {	
	int nRet = (num1 > num2? num1:num2);
	return   nRet;
}

int main(int argc, char *argv[]){
	int nMax = max( 2 , 3 );// max自定义函数
	printf("%d", nMax);
}

自定义函数使用口诀:

  • 先定义,再调用;
  • 传参数,得结果。

函数的好处

  • 复用性+(拒绝重复代码)
  • 维护性+(便于修改,可以只改函数里的代码)
  • 可读性+(便于理解,这需要给函数取个合适的名字,要求见名知意)

当同一段代码出现两次时,就该考虑把这段代码封装到一个函数中,以减少重复代码。
就像活字印刷

参数(parameter)

形参/形式参数(formal parameter /parameter)

定义函数时,函数名后面括号中带类型的变量——规定参数必须是什么类型。

实参/实际参数(actual parameter /argument)

调用函数时,实际传入的参数,必须和形参的类型匹配。
#include <stdio.h>
int max(int x, int y) {//函数定义:形式参数
	int nRet = (num1 > num2? num1:num2);
return   nRet;
}

int main(int argc, char** argv) {
	int a = 100;
	int y = 200;
	int nMax = max(a, y);// 函数调用处:实际参数
	printf("%d", nMax);
	return 0;
}

形参和实参的名字可以不一样——

就像MAC里面装Windows

返回值

  • 无返回值——方便
  • 有返回值——严谨

函数可以没有返回值,这时参数类型为void

函数主体中可以加【return ;】(只返回而无值)
也可以不加(自然结束。)

void luck(int n) {
	if (1 == n) {
		printf("恭喜您,获得100元代金券,购物满3000可用");
		return;// 直接返回
	}
	printf("很遗憾没中奖,再去消费1000元又能来抽奖了");
	// 自然返回
}

返回值可以让调用方知道函数执行的结果有哪些问题,建议函数都加返回值,哪怕返回值没有用到。

int func(){…}
double func(){…}等

int max(int x, int y) {
	return (x>y)?x:y;
}
原文地址:https://www.cnblogs.com/tigerlion/p/11191459.html