C语言——函数的一些基本概念
函数
函数是什么?
数学中我们常见到函数的概念,但是你了解C语言中的函数吗?维基百科中对函数的定义:子程序
在计算机科学中,子程序(英语:subroutine,procedure,function,routine,method,subprogram,callable unit),是一个大型程序中的某部分代码,由一个或多个语句块组成。他负责完成某项特定任务,而且相较于其他代码,具备相对的独立性
一般有输入参数并有返回值,提供对过程的封装和细节隐藏,这些代码通常被集成为软件库C语言中函数的分类
1.库函数
2.自定义函数
库函数:
为什么会有库函数?
1.我们知道我们在学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果打印到我们的屏幕上看看,这个时候我们会频繁的使用一个功能,将信息按照一定的格式打印到屏幕上(printf)
2.在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcpy)
3.在编程时我们也计算,总会计算n的k次方这样的运算(pow)
像上面我们描述的基本功能,它们不是业务性的代码,我们在开发的过程中每个程序员都可能用得到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发那怎么学习库函数呢?
可以参考 : www.cplusplus.com简单的总结,C语言常用的库函数都有:
IO函数
字符串操作函数
字符操作函数
内存操作函数
时间/日期操作函数
数学函数
其他库函数
注:使用库函数就必须包含#include对应的头文件,库函数也一定要全部记住,而是需要学会查询工具的使用,比如 MSDN,https://en.cppreference.com/w/ (把en 换成 zh可以看中文版)
自定义函数
如果库函数能干所有的事情,那还要程序员干什么?所以更加重要的是自定义函数,自定义函数和库函一样,有函数名,返回值类型和函数参数,但是不一样的是这些都是我们自己来设计,这给程序员一个很大的发挥空间举两个个例子:写一个函数可以找出两个函数的最大值
例二: 写一个函数可以交换两个整形变量的内容:
第一张图是错误的解法
错误原因:a, b 的值并没有交换的原因:之前了解过指针的定义,任何值都是有地址的,但是这个函数在接收a , b的值的时候又给x,y创建了一个新的空间,新的地址,交换的是新创建的地址,跟原本a,b 的地址并没又关系,所以a,b的值并没有被交换。
正确解法
函数的参数
实际参数(实参):
真实传给函数的参数,叫实参,实参可以是:常量,变量,表达式,函数等,无论实参是何种类型的量,在进行函调用时,他们都必须有确定的值,以便把这些值传送给形参
形式参数(形参):
形式参数是函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数,形式参数当函数调用完成之后就自动销毁了,因此形式参数只在函数中有效。
上面例子(例二)中的,x,y,pa,pb就是形式参数,在main函数中a,b就是实际参数
C语言——函数的一些基本概念相关推荐
- 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- swift1.2语言函数和闭包函数介绍
swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...
- C运行库和C语言函数库/Microsoft C运行库
C运行库和C语言函数库/Microsoft C运行库 2009-03-04 10:27 973人阅读 评论(0) 收藏 举报 c语言librarydll编译器fortran 1.C运行库和C语言函数库 ...
- C语言 —— 函数(一)
C语言函数 一.C语言函数概念与定义方式 1.1.C语言的函数概念 1.2.函数定义的方式 1.2.1 .C语言无参函数的定义 1.2.2.C语言有参函数的定义 1.2.3.**!!!** 注意:C语 ...
- 51单片机实战教程之C语言基础(五 C语言函数及其定义)
虽然部分C语言函数的返回值与其参数存在对应关系,但是它与数学里的函数不是同一概念.有的书上把它定义为完成特定任务的代码集合. C语言函数的格式为:返回值数据格式 函数名(参数列表){函数体}, 函数 ...
- 第05章 Go语言函数(Go语言func)
函数是组织好的.可重复使用的.用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率. Go 语言支持普通函数.匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方 ...
- C语言函数一章教学,c语言中函数教学的探讨
摘要:C程序是有函数组成的,使用函数可以提高程序设计的效率,因此学习好函数这章对C语言程序的理解和掌握是非常重要的,根据多年教学实践,以案例为引导教学起到了比较好的效果. 关键词:函数教学:函数定义: ...
- 5. (go语言)函数
5. Go语言函数 1 定义格式 2自定义函数 2.1 无参无返回值 2.2 有参无返回值 2.2.1 普通参数列表 2.2.2 不定参数列表 2.3 无参数返回值 2.3.1 一个返回值 2.3.2 ...
- c语言模板函数调用自定义函数调用,C语言函数的递归和调用
C语言函数的递归和调用Tag内容描述: 1.计算机科学系陈垚,1,张福祥主编辽宁大学出版社,C语言程序设计,计算机科学系陈垚,2,我们先看这样一个例子:,说有一只调皮的小猴子,摘了一堆水果,第一天吃了 ...
最新文章
- PAT甲级1028 List Sorting:[C++题解]排序,cin和cout会超时
- 判断是否是ie浏览器 前端js_JS判断是否是IE浏览器
- linux获取cpu核数(线程数)
- 高精度运算模板(大数模板)
- 我的第一个项目(人力资源管理之报表管理)
- 基于Python的HTTP接口测试
- java a =a-=aa_java 初学 :求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。几个 数相加由键盘控制。...
- 【视频开发】CximageMat 、CximagelplImage 以及 lplImageMat的转换、像素位深度
- apache+tomcat+jk配置负载均衡
- 【图像处理】美图秀秀使用技巧:抠图、透明、改色、教程
- 【学术相关】iccv、cvpr、eccv论文接收率及格式下载(附论文下载)
- 《工业设计史》第十章:战后重建与设计
- blink usb无线网卡驱动 linux,BLINK无线网卡驱动下载
- hbuildX使用夜神模拟器配置
- 移动硬盘上安装WIN7 WIN10 UBUNTU系统
- circos 可视化手册-plots 篇
- java惰性计算原理_利用 Lambda 表达式实现 Java 中的惰性求值
- log日志:如何设置log级别、打印字体的颜色
- 伤害世界不显示服务器,伤害世界肿么开服务器
- 红米AC3000、小米cr8806、8808、8809成功刷入openwrt