C语言初阶(4)

1.C语言中函数的定义

在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。

函数被分类成库函数和自定义函数

2.库函数

在C语言初期并没有库函数,但是在开发实际中有一些函数被频繁使用,为了书写的简便性和正确率,程序员设置了一些特定函数来发挥特定作用例如函数time,strcmp,rand, srand.......

库函数在使用的时候要使用相应的头文件

我们可以使用以下工具学习使用库函数

MSDN(Microsoft Developer Network)

www.cplusplus.com

http://en.cppreference.com(英文版)——---------C语言官网

http://zh.cppreference.com(中文版)

3.自定义函数

自定义函数顾名思义由程序员自己编写函数,同样包含返回类型,函数名,函数参数和最重要的函数体,函数在一定程度上简便了代码的书写,最重要的是函数单一化作用极大的提高可操作性,同时可以使代码更加复杂化和多元化。

函数参数分为实际参数(实参)和形式参数(形参)。实际参数就是传给函数的参数,有常量,变量,表达式,函数等,但是无论是什么形式,实参必须是一个确定的值;形参就是函数参数,在函数调用时,才分配内存,在函数结束时销毁,最重要的一点是函数调用时,形参是实参的临时拷贝,对于形参的改变不影响实参。如图1

函数调用有两种形式,一种是传值调用,另一种是传址调用。传值调用实参传给形参的是值,传址调用实参传给形参的是地址,使用指针接收。如图2

下面介绍一下交换数值的代码怎么写

图2 

图2

 说一下我的个人理解:我们把内存想象成一个酒店,地址想象成门牌号,数值相当与居住在房间中的你;图一中传值调用先当与复制了一个一模一样的你在另一个房间,改变你的复制品改变和你没有关系;图二中传址调用是通过地址(也就是指针)找到你,从而实现改变你的目的。

我们可以简单的理解是:形参实例化之后其实相当于实参的一份临时拷贝。

此外,函数的返回值有没有的区别是,返回值要返回到函数上,无返回是只是不输出数值,仍旧需要执行主函数内的代码。

函数具体使用传址还是传值就看你是否想要改变实际参数。

4.练习

(1)写一个函数可以判断一个数(100-200)是不是素数。

未使用函数

函数 

 优化后

库函数sqrt()是开根号,得到数据类型是double,头文件是math.h。

(2)写一个函数判断一年(1000-2000)是不是闰年。

 

非函数

函数

(3)写一个函数,实现一个整形有序数组的二分查找。

三个if语句和if , else if, else 二者有一定区别,如果三个if语句轮流判断,后者只要有一个通过后面就不执行了。

此外,数组作为实参拷贝给形参时,为了节省空间,只拷贝数组第一个地址,实际上拷贝的是一个指针。

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值