C语言函数
一.函数的概念:
函数其实就是一段可以重复调用的,功能相对独立完整的程序段。
二.c语言中函数的类别:
1:标准库函数:
由c语言系统提供,无需用户自定义,如需使用,只需在程序前包含该函数的头文件的原型即可,(如#include <stdio.h>),此头文件包含的函数有printf,scanf,getchar,putchar,等等。
2:用户自定义函数:
用户按照需求所编写的还是函数,用户自定义函数可以分为两大类,有返回值函数和无返回值函数
有返回值函数:此函数被调用执行完之后将向调用者返回一个执行结果,称
为函数返回值。
无返回值函数:此类函数用于完成,某项特定的任务,执行完成后不像调用者返回函数值,用户在定义此函数时,可指定其返回类型为空类型,空类型说明符为void
有参函数:在函数定义时和函数调用时都有参数,称为形式参数,在函数调用时也必须给出参数,称为实际参数。
无参函数:函数定义函数说明时均不带参数,主调函数和被调函数之间不进行参数传递,通常无返回值。
下面代码举例说明无参数无返回值的函数举例:
#include <stdio.h>
#include <math.h>
void showerror();//声明shoeerror函数的原型
int main()
{
int a;
scanf("%d",&a);
while(a<0)
{
shoewrror();
scanf("%d",&a);
}
printf("sqrt(a)=%.2f\n",sqrt(a));
return 0;
}
void showerror()//函数的调用无参数无返回值
{
printf("input error!");//函数体没有声明变量
}
下面举例无参数有返回值的例子
#include <stdio.h>
#include <conio.h>
#include <ctype.h?
int sum();//声明sum函数的原型
int main()
{
int tot;
tot=sum();//调用sum函数
if(tot==-1)
printf("\nnot select!\n");
else
printf("\n the result is : %d\n",tot);
return 0;
}
int sum()//函数的定义,无参数有返回值
{
int i,tot=0;//变量声明部分
char key;
key=getchar();
if(key!='0'&&key!='1')
return(-1)
for(i=(key!='0')?2:1;i<=100;i+=2)
tot+=i;
return(tot);
}
带函数无返回值的函数的定义:
这种函数的定义的一般形式为
void 函数名(类型符1 形参名1,类型符2 形参符2...)
{
变量声明部分
执行部分
}
**注意:
1:形参之间一定要用,隔开,形参名前面要有数据类型符以说明形参的数据类型
2:不允许对形参赋初值,但可以在函数执行的执行部分对形参赋值
**
调用带参数的函数时要注意以下两点:
1:实参列表中的实参必须与函数定义时的形参数量相同,类型相同
2:实参列表的求值顺序因系统而定