函数:
1.内置函数:
由C语言提供;无需定义;只需在程序前定义头文件
常见的内置函数:sqrt,pow,rand...
2.自定义函数:
用户自己根据需要编写的程序
3.函数声明
提前告诉编译器函数的类型
4.函数调用
通过在程序中使用函数名称可以执行函数中包含的语句
可以嵌套调用,但不可无线嵌套调用
可以递归调用,自己调用自己
5.return返回值
最多只能返回一个值;
一旦遇到return,表示本函数结束;
如果返回值和定义的返回类型不匹配,以返回值类型为主,返回值会自动转换成指定类型;
6.数值传参&地址传参
(1)如果只需要实参中的数据参与运算,不需要改变实参中的内容,地址传参和数值传参都可以
(2)如果要修改形参内容,必须选择地址传参
通过指针传出参数 :返回值为多值时用传出参数
通过指针传入参数 :返回值为1个时可用 return
7.数组作为参数传递
传递数组至少两个条件:
(1)数组首元素的起始地址
(2)数组的元素个数
8.函数指针
(1)定义:本质是一个指针变量,保存函数的入口地址
(2)语法:返回值类型(*pfun)(参数表)
int(*pfun)(int,double); //pfun是一个函数指针,保存有两个参数,分别是整型和浮点类型,返回值是整型函数的入口地址
ps:函数名就是函数的入口地址
(3)函数的调用方式
直接通过函数名调用
通过函数指针回调函数:函数指针(参数表)
9.指针函数
定义:本质是一个函数,返回值是指针类型的函数
ps:如果返回值是指针类型,要返回一个有效的地址,返回局部变量的地址是没有意义的
10.多文件编程
(1) xx.c称为源文件,xx.h称为头文件
(2)一般在过程中,一个模块包含 源文件+头文件,文件名一致,就是后缀不一样
(3)如果A.c文件中调用B.c文件的函数,要做以下两件事:
1)在A.c中包含B.h头文件
2)交叉编译:gcc A.c B.C -o xxx
11.局部变量
定义:指定义在函数内部的变量
生存期:变量定义——>所在函数结束
作用域:只能在定义函数内部访问
12.静态局部变量
定义:数据类型前加上 static
生存期:程序开始——>程序结束
作用域:只能在定义函数内部被访问
应用场合:统计数据
13.全局变量
定义:定义在函数外部的变量
生存期:程序开始——>程序结束
作用域:所有.c文件都可以访问
在项目中谨慎使用,建议不要使用
全局变量的声明: extern 数据类型 变量名
ps:全局和局部冲突,就近原则
(1)局部变量和全局变量可以同名,访问采用就近原则
(2)语句块内定义的变量,生存期仅仅旨在语句块内部
14.静态全局变量
定义:全局变量前加static
生存期:程序开始——>程序结束
作用域:只能被本.c文件访问
练习:
1.输出1-10之间所有整数的平方根和立方
1)代码
2)运行结果
pow()函数返回值为浮点型
2.产生7个1-30之间的随机数,并且不重复
1)代码
2)运行结果
srand(unsign int)用来用来设置rand()产生随机数时的随机数种子
time(NULL)返回秒数
3.求任意整数的绝对值,求任意浮点数的绝对值
1)代码
2)运行结果
abs()整数取绝对值
fabs()浮点数取绝对值
4.设计函数,计算1-n之间整数之和(递归实现)
1)代码
2)运行结果
5.设计函数,计算两个整型数的最大值;设计函数,计算x的y次幂
1)代码
2)运行结果
6.实现简单的图形面积管理系统
(1)显示菜单
欢迎进入图形面积管理系统
1.计算矩形面积
2.计算三角形面积
3.计算圆形面积
0.退出
(2) 根据菜单进入不同的分支
1)代码
2)运行结果



