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;
    }
    
  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11191459.html
Copyright © 2011-2022 走看看