函数(day08)
C语言里可以采用分组的方式管理语句
每个语句分组叫做一个函数 多函数程序执行的时候时间分配情况必须
遵守以下规则
.整个程序的执行时间被划分成几段,每段
时间都被分配给一个函数使用
.不同时间段不能互相重叠并且所有时间段
必须连续
.如果函数A在工作的时候把一段时间分配给
函数B使用则函数B结束所有工作之后必须
把后面的时间还给函数A 如果函数A在工作的时候把时间分配给函数B
使用则它们之间存在函数调用关系
在函数调用关系中函数A叫做调用函数,函数B
叫做被调用函数
函数调用关系只在被调用函数工作的时间
范围内才存在 函数调用语句可以产生函数调用关系,可以
把一个函数的执行时间分配给别的函数 不可以跨函数使用变量
不同函数里的变量可以重名
如果函数多次运行则它里面的变量每次
对应的存储区都可能不同 声明变量的时候可以使用volatile关键字,
这种变量对应的存储区可以被多个
程序同时使用 函数调用过程中通常伴随着两个函数之间
的数据传递
函数调用过程中数据传递存在两个完全相反
的方向,可以从调用函数传递给被调用
函数也可以从被调用函数传递给调用函数
任何方向的数据传递都要使用被调用函数提供
的存储区 只能从被调用函数向调用函数传递一个数据
这个数据叫做被调用函数的返回值
只能在被调用函数结束的时候传递返回值
传递返回值的时候需要把它记录到被调用函数
提供的一个存储区里,这个存储区的类型
名称应该写在函数名称前
被调用函数里使用return关键字可以把返回值
记录到这个存储区里
调用函数把函数调用语句当作数字使用就可以
得到函数的返回值 如果被调用函数没有使用return关键字向存储区
里放返回值则存储区里的内容是随机的
调用函数只有一次获得返回值的机会,得到
返回值以后或者立刻使用或者另外存储
到其它存储区
如果函数没有返回值就应该在函数名称前
写void
如果函数名称前什么都不写在C89规范里表示
函数提供一个整数类型存储区用来存放
返回值,在C99规范里不允许这样 被调用函数不可以用数组存放返回值 函数调用过程中可以从调用函数向被调用函数
传递多个数据,这些数据的类型可以不同
被调用函数需要为每个传递过来的数据提供一个
对应的存储区
可以使用被调用函数提供的一组变量表示
这些存储区,这些变量必须声明在
函数名称后面的小括号里
这些变量叫做函数的形式参数,小括号里的
所有内容叫做函数的形式参数列表
每个形式参数的类型名称都不可以省略
相邻形式参数声明之间用逗号分开
被调用函数里可以象使用普通变量一样使用
形式参数
函数调用语句的小括号里需要为每个形式参数
提供一个对应的数字,相邻数字之间用逗号
分隔
这些数字叫做实际参数
函数调用的时候计算机把每个实际参数存放在
对应的形式参数里,被调用函数里可以
通过形式参数得到实际参数的数值
只要能当作数字使用的内容都可以作为实际参数
使用
如果函数没有形式参数就应该在小括号里写void
编写函数时如果小括号里什么都没写表示函数
可以提供任意多个形式参数,这些形式参数
的类型可以不同
函数(day08)的更多相关文章
- day08 python之函数初识
一,什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print(),len( ...
- day08作业---函数
'''2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者.'''#学会了 原来 range(len(iter)) 是 从零到len-1 的数的组合 建新放在 ...
- python学习 day08 (3月13日)----函数
函数 一.定义 def 关键字 函数名(): 函数体 函数 ---- 封装#def 关键字 # #定义后的函数就像变量 不调用是不执行的 # #函数名() ==函数的调用 def code(): ...
- day08(字符编码,字符与字节,文件操作)
一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...
- Python面向对象进阶和socket网络编程-day08
写在前面 上课第八天,打卡: 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __i ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
- Day08 (黑客成长日记) 命名空间和作用域
Day08:命名空间和作用域: 1.命名空间: (1)内置命名空间(python解释器): 就是python解释器一旦启动就可以使用的名字储存在内置命名空间中: eg: len() print() a ...
- day08(补)
今日学习内容 1.文件重写方法 2.函数基本知识 文件处理: 打开文件 读/写文件 关闭文件 文件指针移动,只有t模式下的read(n),n代表的字符个数其余都是以字节为单位 f.seek有两个参数( ...
- python对象反射和函数反射
python的对象反射功能,经常在编程时使用.相比较其它的编程语言使用非常方便.反射就是用字符串来操作对象或者类,模块中的成员. 一.对象的反射 反射功能的实现,由这4个内置函数来实现(hasattr ...
随机推荐
- getAttribute for IE7
getAttribute 大部分介绍都说仅仅有一个.包含w3cschool. 事实上这种方法在iE7下有两个參数. msdn 上查到的. 简单翻一下 0 是默认情况,不区分大写和小写! 1 区分大写和 ...
- Git项目删除文件
场景:项目中有一个文件test_exam_copy 文件之前提交上去的,现在不想要,本地也不要 方案一(手动图示删除): 直接登录到gitLab上面,进入该文件详情,直接删除,然后本机push下,则库 ...
- Cocos2d-x飞机大战教程笔记
咳咳~跟着大神的教程学做Cocos2d-x的飞机大战...鉴于我是那种跟着教程都会出非常多错的人,所以还是一路跟着做些笔记比較好.并且因为是用课余时间,所以仅仅能断断续续地做,写下来也好让自己别忘记~ ...
- Windows热键注册的底层原理
要像系统注册一个全局热键,需要用到RegisterHotKey,函数用法如下(MSDN):BOOL RegisterHotKey( ...
- js的内建arguments数组
调用函数时,只需在函数名后加一对用于传递参数的括号即可.var result = sum(1,2) 如果调用参数(a,b)的时候没有给值,则值默认为undefined.即使传递参数过多,多余的部分也会 ...
- 关于FrameBuffer【转】
本文转载自:http://blog.csdn.net/ganxingming/article/details/764482 一.FrameBuffer的原理 FrameBuffer 是出现在 2.2. ...
- ssdb底层实现——ssdb底层是leveldb,leveldb根本上是skiplist(例如为存储多个list items,必然有多个item key,而非暴力string cat),用它来做redis的list和set等,势必在数据结构和算法层面上有诸多不适
我已经在用ssdb的hash结构,存储了很多数据了,但是我现在的用法正确吗? 我使用hash结构合理吗? 1. ssdb数据库说是类似redis,而且他们都有hash结构,但是他们的命名有点不同,ss ...
- spring boot测试
今天在springside里试了spring boot,果然很方便,内置容器,不需要配置web.xml,简单几个文件就可以实现增删改查操作,一些配置如tomcat端口之类的直接写在applicatio ...
- bzoj 1059 [ ZJOI 2007 ] 矩阵游戏 —— 二分图匹配
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1059 每一列选出一个占据一行才可以: 挫败. 代码如下: #include<iostr ...
- HTML中的文本框textarea标签
转自:https://www.jb51.net/web/183411.html <textarea></textarea>用来创建一个可以输入多行的文本框,此标志对用于< ...