概述
一、函数
函数是一个大型程序的某部分代码,由一个或多个语句块组成。负责完成某项特定任务,而且相较其他代码,具备独立性。
例如:
void menu()
{
;
}
void game()
{
;
}
int main()
{
menu(); //menu函数是实现游戏菜单功能
game(); //game函数是实现游戏功能
}
所使用的menu和game函数都是自定义的函数,main()是主函数(之前介绍过),它们都相互独立,将一个大型程序,可以分解为一些小的,更容易管理的代码模块。
二、函数分类
函数有两类:库函数和自定义函数
库函数:C语言基础库中提供了一系列库函数,为了支持移植性和提高程序的效率,方便进行软件开发。如:printf()和scanf()函数
库函数在使用时,必须包含#include
对应的头文件。
C语言常用的库函数有:
- IO函数
- 字符串操作函数
- 字符操作函数
- 内存操作函数
- 时间/日期函数
- 数学函数
- 其他库函数
库函数太多了,使用时,需要工具查询:
- MSDN
- www.cplusplus.com
- http://en.cppreference.com(英文版)
- http://zh.cppreference.com (中文版)
自定义函数:程序员自己设计的函数,和库函数一样,有函数名、返回值类型和函数参数(可以为空),不需要返回值时,返回类型为void
#include <stdio.h>
//计算两个整数的最大值
int get_max(int x, int y) //get_max自定义函数的设计
{
return (x>y)?(x):(y);
}
int main()
{
int num1 = 10;
int num2 = 20;
int max = get_max(num1, num2);
printf("max = %dn", max);
return 0;
}
// int 为返回类型
// get_max为函数名
// int x , int y为函数参数(形参)
三、函数的参数
函数的参数分为:实参和形参
实参就是实际参数,在函数被调用时,将真实的值作为参数,传给函数定义的形式参数。
实参可以是:常量、变量、表达式、函数等
int main()
{
int num1 = 10;
int num2 = 20;
int max = get_max(num1, num2); //实参为变量
printf("max = %dn", max);
printf("%d",printf("%d",printf("%d",32))); //实参为函数的返回值---3221
return 0;
}
num1和num2为实际的值,作为调用函数get_max时的参数,此时num1和num2就是实参
形参是指函数名后括号中的变量,因为形式参数只有函数被调用的过程中才实例化(分配内存空间),形式参数当函数调用完成之后就自动销毁了,只在函数中有效。
int get_max(int x, int y)
{
return (x>y)?(x):(y);
}
x和y为形参,形参需要声明数据类型,数据类型必须和实参保持一致。
四、函数调用
1.传值调用
函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。
上述代码就是传值调用。
2.传址调用
- 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
- 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。
void Swap(int* x ,int* y)
{
int temp = 0;
temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int num1 = 10;
int num2 = 20;
printf("%d %dn",num1,num2); // 10 20
Swap(&num1,&num2); //这里就是传址调用
printf("%d %dn",num1,num2); // 20 10
return 0;
}
五、函数的声明
因为编译器在读取代码时,从上到下的,首先执行main()函数里代码,当main()函数中调用函数时,从main()的上方未看到函数的定义或声明会出现警告
这时,需要将函数的定义放在main()函数之前,或者在函数使用之前进行声明
函数的声明一般放在头文件中test.h
void Swap(int* x, int* y) ;
函数的定义是指函数的具体实现,交代函数的功能实现test.c
void Swap(int* x ,int* y)
{
int temp = 0;
temp = *x;
*x = *y;
*y = temp;
}
最后
以上就是淡定睫毛为你收集整理的C-函数知识的全部内容,希望文章能够帮你解决C-函数知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复