一、函数的形参和实参
二、函数的返回值
如果函数定义没有返回值,那么函数调用时不能写void关键字,调用函数时也不能接收函数的返回值。
#include <stdio.h>
void test()
{
}
int main(void)
{
//函数调用
test();//正确
void test(); //错误。因为void关键字只能出现在定义中,不能出现在函数调用的地方。
int a = test();//错误。因为函数定义根本就没有返回值
return 0;
}
三、函数声明
(1)如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)不在同一文件中,或者函数定义的位置在主调函数之后,则必须在调用此函数前对被调用的函数作声明。
(2)函数声明就是在函数尚未定义的情况下,事先将该函数的有关信息通知编译系统,相当于告诉编译器,函数在后面定义,以便使编译器能正常运行。
注意:一个函数只能被定义一次,但可以声明多次。
#include <stdio.h>
int max(int x, int y);//声明函数,分号不能省略
//int max(int,int) //另外一种声明方式
int main(void)
{
int a = 1;
int b = 2;
int num_max = 0;
num_max = max(a, b);//调用函数
printf("num_max = %d\n", num_max);
return 0;
}
int max(int x, int y)
{
return x > y ? x : y;
}
四、函数定义和函数声明的区别
五、main函数和exit函数
在main函数中调用exit(0)和return结果是一样的,但在子函数中调用return只是代表子函数终止了,在子函数中调用exit(0),那么程序终止。
(1)子函数中使用return时:
#include <stdio.h>
#include <stdlib.h>
void fun()
{
printf("哈哈哈\n");
return;
//exit(0);
printf("666\n");//此语句不会被执行,也就是说不会打印“666”
}
int main(void)
{
fun();
printf("验证程序是否终止\n");
return 0;
}
(2)子函数中使用exit(0)时:
#include <stdio.h>
#include <stdlib.h>
void fun()
{
printf("哈哈哈\n");
//return;
exit(0);
printf("666\n");//此语句不会被执行,不会打印“666”
}
int main(void)
{
fun();
printf("验证程序是否终止\n");//此语句也不会被执行
return 0;
}
(3)在main函数中用exit(0)代替return 0,效果和return 0是一样的。
#include <stdio.h>
#include <stdlib.h>
void fun()
{
printf("哈哈哈\n");
//return;
//exit(0);
printf("666\n");
}
int main(void)
{
fun();
printf("验证程序是否终止\n");
exit(0);
}