zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    [CF340D]Bubble Sort Graph/[JZOJ3485]独立集
    [JZOJ3484]密码
    [HDU1756]Cupid's Arrow
    Luogu P4006 小 Y 和二叉树
    Luogu P4040 [AHOI2014/JSOI2014]宅男计划
    Luogu P3243 [HNOI2015]菜肴制作
    Luogu P3942 将军令
    Luogu P4823 [TJOI2013]拯救小矮人
    Luogu P3620 [APIO/CTSC 2007]数据备份
    BZOJ3709 [PA2014]Bohater
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11191459.html
Copyright © 2011-2022 走看看