函数
- 格式:
函数的返回值 函数的名字(函数的形参列表)
{
函数的执行体
}
例如
void max(int i, int j)
{
if (i>j)
printf("%d\n",i);
else
printf("%d\n",j);
}
max是函数的名字,i和j是形式参数(简称形参),void表示函数没有返回值
- 函数返回值的类型也称为函数的类型,因为如果函数名前的返回值类型和函数执行体中的return表达式;中表达式类型不同的话,则最终函数返回值的类型以函数名前的返回值类型为准
return
作用:
- 终止被调函数,向主调函数返回表达式的值
- 如果表达式为空,则终止函数,不向被调函数返回任何值
和break的区别:break用来终止循环和switch,return只终止函数,两者对象不一样
函数的分类
- 有参函数,无参函数
- 有返回值函数,无返回值函数
- 库函数,用户自定函数
- 普通函数,主函数(main函数)
- 值传递函数,地址传递函数
注意:(背会)
- 一个程序有且只有一个主函数
- 主函数可以调用普通函数,普通函数不能调用主函数,普通函数可以相互调用
- 主函数是程序的入口,也是程序的出口
函数调用和函数定义的顺序:
如果函数调用写在函数定义的前面,则必须加函数前置声明。
函数前置声明:
- 告诉编译器即将可能出现的若干个字母代表的是一个函数
- 告诉编译器即将可能出现的若干个字母所代表的函数的形参和返回值的具体情况、
- 函数声明是一个语句,末尾要加“;”
- 对库函数的声明是通过#include<库函数所在的文件名字.h>来实现的
形参和实参
形参和实参(数)的个数一一对应
函数是c语言的基本单位
常用的系统函数:
double sqrt(double x)求x的平方根
int abs(int x)求x的绝对值(整数)
double fabs(double x)求x的绝对值(浮点数)
变量的作用域和存储方式
1.按照作用域分:
- 全局变量:在所有函数外部定义的变量,适用于定以后直到程序结束
- 局部变量:在一个函数内部定义的变量或者函数的形参,只能在本函数内部使用
- 全局变量和局部变量命名一样时,局部会屏蔽全局
2.按照变量的存储方式(不重要)
- 静态变量
- 自动变量
寄存器(cpu内部的存储设备)变量