首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
C语言学习第9天:函数(一)
时间:
2015-07-29 22:36:06
阅读:
191
评论:
0
收藏:
0
[点我收藏+]
标签:
一、函数的作用
将一些大的或者功能相同的程序分割成一个个程序块,这些独立的模块就可称为函数。
1、函数是构成程序的基本单元
2、函数的使用可以省去重复代码的编写;
3、函数使得程序更加模块化,提高程序的可阅读性;
二、函数的分类
1、库函数、用户自定义函数
库函数是系统已为开发者提供的一些现成的函数,用户可以直接拿过来使用的;
用户自定义函数是用户为实现某些特定功能,而自己编写的代码段;
2、返回值类型、无返回值类型
有返回值函数:此类函数被调用执行完毕后将相调用者返回一个执行结果,称为函数返回值。有返回值的函数,必须在函数定义和函数说明中明确返回值的类型。
无返回值函数:此类函数用于完成某项特定处理任务,执行完成后不想调用者返回函数值。用户在定义此类函数时可指定他的返回类型为”空类型“,空类型的说明符为”void“。
三、函数的说明
1、函数可以嵌套(一个函数可以调用另外一个函数)。
2、函数允许递归调用(自己调用自己)。
3、函数不允许嵌套定义。
4、main函数可以调用其他函数,却不可被其他函数调用。
5、程序的执行是从main函数开始的。
四、函数的定义
函数的定义形式:
1、无参函数的定义:
返回值类型 函数名(void){
语句块;
}
2、有参函数的定义:
返回值类型 函数名(形式参数列表){
语句块;//最后一定要有return作为结尾。
}
五、函数的参数
函数的参数分为形参(形式参数)和实参(实际参数)两种。
形参出现在函数定义中,并在整个函数体内部有效,当该函数结束后不能使用。
实参出现在主调函数中,进入被调函数后,实参变量不能使用。
形参和实参的以下特点:
1、形参变量只有在被调用时才分配内存单元,只有在函数内部有效,函数结束后不能使用。
2、函数默认采用值传递。
3、实参可以是常量、变量、表达式甚至是函数,但是在传递给函数前,必须有确定的值。
4、实参和形参占据不同的存储单元。
案例1:
void Swap(int _a,int _b)
{
int temp = _a;
_a = _b;
_b = temp;
}
int main()
{
int x = 10;
int y = 20;
Swap(x,y);
printf(“x = %d,y = %d”,x,y);
}
在案例1中对x,y的值进行了值传递,并不会改变x,y的值。
案例2:
1 #include<stdio.h>
2 #define PI 3.14
3 //求圆的面积的公式
4 double area(double r);
5 //求圆的周长
6 double primeter(double r);//函数的声明;
7 int main(){
8 double r = 0.0;
9 printf("请输入半径:\n");
10 scanf("%lf",&r);
11 printf("area:%.2lf,primeter:%.2lf\n",area(r),primeter(r));
12 return 0;
13 }
14 //求圆的面积的公式
15 double area(double r){
16 return PI * r * r;
17 }
18 //求圆的周长
19 double primeter(double r){//函数的声明;
20 return 2 * PI * r;
21 }
C语言学习第9天:函数(一)
标签:
原文地址:http://www.cnblogs.com/xjf125/p/4687553.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!