C语言中的函数以及循环结构的实现方式
函数的2种使用方式:
1、被别的函数调用;
2、自己调用自己(递归)。
循环结构的实现方式:(1+..100)
1.while
2.do...while
3.for
4.if...goto...
5.递归 (函数自己调用自己)
goto语句的作用:无条件跳转
**警告**滥用goto语句会导致程序执行流程混乱,代码可读性大大降低,所以建议尽量不使用goto语句
break和continue语句在循环结构中的作用
break语句:结束本层循环,即退出本层循环
continue语句:结束本次循环,即进入下次循环
循环结构可以嵌套使用(二重循环或多重循环),但建议嵌套层次不要太多,否则影响代码可读性
数据交换
1.中间变量
c=a; a=b;b=c;
2.变量特性
a=a+b; b=a-b;a=a-b;
3.异或 a=a^b; b=a^b; a=a^b;a^=b; b^=a; a^=b;
函数(Function):实现某个特定功能的代码块,相当于一个功能模块
在C语言项目开发中,一个复杂的项目可以划分为若干个功能模块,而每个功能模块可以通过一个函数去实现
函数分为两类:库函数和自定义函数
库函数:系统已经定义好,我们直接调用的函数,无需关注其实现细节。例如:printf, scanf, getchar等
C语言提供的库函数称为标准库函数,大概有300多个,例如:printf, scanf, getchar等
有些库函数是操作系统或第三方提供的,它们就不是标准库函数了,也不能像标准库函数一样跨平台使用了
C/C++语言是跨平台(源代码级别,不是二进制级别)的,即C/C++语言源代码在不同的操作系统平台上可以通用,不需要任何修改
平台是指操作系统(例如,Windows平台,Linux平台,Android平台等)或软件运行环境(例如,Java平台,.NET平台)
常用库函数:
1.时间处理相关的库函数:time(获取系统当前时间戳,即距离1970年1月1日0时0分0秒的秒数)
2.生成随机数相关的库函数:srand(设置随机数种子),rand(产生一个随机数)
rand函数生成的是伪随机数(pseudo-rand number),并不是真正的随机数,每次运行程序生成的随机数序列是一样的
操作系统内部维护着一个随机数序列,我们每次调用rand函数只是从这个序列中的某个位置开始依次获取一个随机数,这个取随机数的起始位置是由随机数种子决定的,如果随机数种子相同,则每次获取的随机数序列将是一样的,所以如果希望产生不同的随机数序列,就应该在每次产生随机数序列之前设置一个不同的随机数种子
3.执行一个程序:system
4.休眠函数:sleep(以秒为单位), usleep(以微秒为单位),注意它们不是标准库函数,是Linux系统提供的库函数,只能用于Linux平台
小结:
学习了函数。
一个程序中有且只有一个main()函数;函数的两种使用方式;
函数的声明: int my_hanshu(int m);
函数的说明:int my_hanshu(int m)
{ 函数体 }
int 决定函数返回值得类型。
后面括号内的int (int),决定形参的数据类型。
关于形参和实参的事;有形参的话,调用的时候必须给它实参,形参的作用:接收调用时传过来的实参。形参有多少个,实参就给多少个,并与括号内的形参的数据类型一一对应。
之后在代码编写的时候可以尝试加上函数来练练手。