1.C语言是面向过程的语言,从上往下依次进行,但是执行入口却是main()。
2.函数就是功能模块,用来完成某项功能。
函数一般是这样定义的:
返回值 函数名(形参)
{
函数体;//模块的过程
return 返回值表达式;
}
调用函数是执行“一次”函数的过程
函数名(); 注:函数必须定义 *函数表达式
注:1函数必须存在 2形参必须匹配
3.函数的使用方式。
(1).声明函数。
(2)调用函数(main中调用)
比如:完成1+1的函数。
声明就是在main之前声明这个函数的名称,一般来讲,函数体会写在main前面,这也相当也声明了,如果函数体写在函数后面就需要声明。
这个是函数体写在main前的情况,可以正常运行。
这个是函数体写在main后的情况,如果没有声明,程序就会出错
二函数的各种形式
1.函数分为两种,一种是系统函数,比如printf( ),scanf( ).,使用这些函数的时候要使用包含这些函数的头文件,比如我们常常写的#include<stdio.h>,这个头文件包含了C语言的标准输出输入函数。
另一种是自定义函数,比如上面我使用过的fun函数,它的功能是算出1+1。自己所创造的函数就是自定义函数。
2.自定义函数。
(1)无参数无返回值
void 函数名(void)
{
return ; //返回一个空语句,并函数结束
}
程序从main开始执行,所以要想调用函数,必须在main中调用;
函数执行到return时就停止了,后面不再执行。
return 一般用来返回一个函数值,但是这个函数无返回值,所以return后是空语句。
2.2、有返回值(结果:数据) 无形参
返回值类型 函数名(void)
{
函数体;
return;
}
这里return 5;意为函数fun最后返回一个数值5,相当于fun()=5;
3.无返回值,有形参。
这里的形参可以传递到函数中,在main中的fun(1),1代表实参,它是1确确实实存在的实际参数,而在外面的函数fun(int i)中的i是形式参数。不是实数。这里的1会传递给i,最后使i=1;参数可以有多个。
4.有返回值有参数
这个函数是求次大值,函数是getsecond(),在main中调用,main中getsecond(buf,10),会把参数传递给外面的函数,所以ilen=10,buf【】=buf【】。需要说一句的是这里的buf传递的是首地址。