C语言初学者WEEK05
函数:
为什么需要函数:
1.避免了操作的重复性
2.有利于程序的模块化
什么是函数(函数名可由自己随意定义):
1.逻辑:能够完成特定功能的独立的代码单块
2.物理:能够接受数据(也可以不处理),对接收的数据进行处理,将处理后的数据进行返回(也可以不返回任何值)
注:以int f(void)为例,括号中的void表示该函数不能接受数据,int表示函数的返回值为int类型的数据
总结:函数是个工具,是为了解决大量类似问题而设计的
如何定义函数:
函数的返回值 函数名(函数的形参列表)
{
函数的执行体
}
1.函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体方案
2.return; 的含义:
·终止被调函数,向主调函数返回表达式的值
·如果表达式为空,则只终止函数,不向被调函数返回任何值
·break是用来终止循环和switch语句的,return用来终止函数的
void f()
{
return; //return只用来终止函数,不向主调函数返回任何值
}
int f()
{
return 10;//①终止函数;②向主调函数返回10
}
3.函数返回值的类型也称为函数的类型。若 函数名前的返回值类型 和 函数执行体中的return; 中表达式类型不同,则最终函数返回值的类型 有冲突,则以函数名前的返回值类型为准。
int f()
{
return 10.5;//函数返回值类型为int,故最终的返回值是10,而非10.5
}
函数的分类:
1.有参函数 和 无参函数
2.有返回值函数 和 无返回值函数
3.库函数 和 用户自定义函数
4.普通函数 和 主函数(main函数)
一个程序有且只有一个主函数
主函数可以调用普通函数,但是其他函数不可以调用主函数
普通函数之间可以相互调用
主函数是程序的入口,也是程序的出口
注意点:
1.函数调用和函数定义的顺序(若函数调用写在了函数定义的前面,则必须添加函数前置声明)
函数前置声明:
·告诉编译器即将可能出现的若干字母代表的是一个函数
·告诉编译器即将出现的若干字母所代表的函数的形参和返回值的具体情况
·函数声明是一个语句,末尾必须要有分号
·对库函数的声明是通过 # include<库函数所在的文件名.h> 来实现的
2.形参和实参:
·个数相同 位置一一对应 数据类型必须兼容
3.函数是CC语言的基本单位
常用的系统函数:
·double sqrt(double x); 求x的平方根
·int abs(int x); 求x的绝对值
·double fabs(double x);求x的绝对值
变量的作用域和存储方式:
1.按作用域分类:
·全局变量:在所有函数外部定义的变量叫做全局变量,使用范围为从定义位置开始到整个程序结束
·局部变量:在函数内部定义的变量或函数的形参,统称为局部变量,只能在该函数内部使用
void f(int i)
{
int j=20;
} //i和j均属于局部变量
注:全局变量和局部变量命名冲突的问题
在一个函数内部若定义的局部变量的名称和全局变量名相同时,局部变量会屏蔽掉全局变量
2.按存储方式分类:
·静态变量
·自动变量
·寄存器变量