一:知识点
1. 函数调用的时候的参数叫实际参数
2. 函数定义的时候的参数叫形式参数
3. 函数调用发生的时候,要求实际参数和形式参数的数量要一致,类型要匹配
4. 函数调用发生的时候,要考虑函数的位置?
(a) 如果主调函数在上,被调函数在下,要求要在主调函数的上面或内部对被调函数 进行声明,否则函数调用无法执行;
(b)如果在程序中使用了库函数,要对该库函数作相应的声明处理。“#include”
5. 函数声明
(a) 自定义函数的声明:推荐使用函数的原型声明方式(将函数的头部完全复制+分号, 构成函数声明语句)放在主调函数的变量定义位置(主调函数内)或者放在主调函数的上方;声明放在程序的最开头;
(b) 库函数的声明:使用#include来包含该库函数所在的头文件(*.h)
(c) 什么时候不需要对函数进行声明:
1. main不需要声明;
2. 被调函数写在主调函数 之前,不需要声明。
6. 函数的值
(a)函数的值要返回主调函数,使用return语句;
( b) return语句在一个函数可以有多个,但是程序执行遇到第一个return语句的时候 就将结束本函数,回到主调函数。多个return最终只能有一个被执行。
(c) return后面可以是变量、常量、表达式
7. 多个形式参数的定义,不管类型是否相同,都要分别用类型来定义形参
8. 函数的调用方式:
嵌套调用
递归调用
9. 全局变量和局部变量
全局变量
局部变量
变量的作用域
变量的生存期
10.函数调用形式:
1.赋值语句:
volume=cylinder(radius,height);
2.输出函数的实参:
printf(“%f”,cylinder(radius,height));
11.调用方式
函数语句:把函数调用作为一个语句。 例 printstar(); printf(“Hello,World!\n”);说明:不要求函数带回值;只要求函数完成一定的操作。函数表达式:函数出现在一个表达式中。
例 m=max(a,b)*2;说明:求函数带回一个确定的值以参加表达式运算。函数参数;函数调用作为一个函数的实参。 例printf(“%d”,max(a,b)); m=max(a,max(b,c));
例如:
main(){ float add(float,float); /*function declaration*/ 被调函数出现在主调函数之前不必函数说明float a,b,c;scanf("%f,%f",&a,&b);c=add(a,b);printf("sum is %f",c);}float add(float x, float y){ float z;z=x+y;return(z);}
二:遇到的问题及解决办法
在编码中,有的时候不知道该怎么输入,那种函数好,过程有些麻烦
#include <stdio.h>
int countdigit(int number,int digit=2){ int count,i; count=0; i=0; while(number%10!=0){ i=number%10; number=number/10; if(i==digit) count++; } return count; }int main(){ int number,digit,count; digit=2; printf("输入一个整数:"); scanf("%d",&number); printf("%d中有%d个2\n",number,countdigit(number,digit)); return 0;}三:心得体会
语言c果然比想象中的更难,在编码的时候必须要细心更细心!
而且,上课的时候不能走神!!!不然跟不上!!