学习笔记之——C语言 函数( 三 )


3、  由于编译过程是从上到下 。那么函数的编写在被引用点前的话,在引用的函数里不需要声明出来 。在引用点后面编写的函数,在引用的函数里要声明 。
函数的声明方法:形式与函数名一致,后面要求加分号 。
4、  当没有返回值的时候(return为0),函数要指定为viod类型 。有返回值的时候 , 函数类型为返回值类型 。这样的定义,有助于在调用层函数里把这个函数可以作为一个变量使用 。一个函数只能带回一个返回值 。
5、  定义函数: 类型名   函数名(形参列表){   }
6、  声明函数:类型名   函数名(形参列表){   };
7、  在函数的最后位置对函数返回值进行限制 。
限制语句为 return (返回变量名),或者简写为return 变量名;
8、  函数在被调用的时候,可以当作一个本函数里的变量看待,调用方法和使用一个变量一样 。谭浩强教程中给出3种调用方式:单独一个语句printf_star;   函数表达式c=max(x,y);    作为函数的参数printf(“%d”,max(a,b);
9、  函数在被调用的时候,实参的列表顺序和数据类型和形参一致 。
这一条里面有两个问题没有搞懂:
1) 声明函数的时候,形参可以不写参数名 。比如void print(int,float,char);是合法的 , 那么在函数里怎么判断该调用那个参数了呢?(解决:在需要调用函数的程序里 , 声明函数只是给函数预留出足够用的内存 , 所以可以不用写参数名 , 但是在编程过程中 , 形参位置一定要写参数名 。)
2) 存在调用函数可以少写参数的情况 。比如主函数main在规定里是带有两个参数的,平时可以不写 。根据要求必须一一对应,那么如何处理调用过程中参数缺省情况呢?
10、      函数可以调用其他函数,称为嵌套调用 。
函数可以直接或者间接的调用函数本身,称为递归调用 。递归调用的时候要注意设置结束条件 。
11、      调用函数的过程,其实是一个把实参传递给形参,函数再返回一个值的过程 。调用的过程中,单个的数值(包括单个变量和数组元素)被传递给函数

推荐阅读