导图社区 函数
C语言之函数知识梳理,包括函数的作用、函数的使用、形参和实参、全局变量和局部变量、c语言开辟内存的五个大区等等。
编辑于2022-11-20 11:06:27 河南函数
函数的作用
函数是工程中最小的单位
一个工程有且只能有一个主函数
main
工程从主函数开始,到主函数结束
函数的作用
使程序模块化
封装代码,提供统一接口
函数的使用
#include #include "string.h" void Max(void); int Max1(void); void Funtion1(void); int Max2(int num3,int num4); int main() { int max1; int num1,num2; printf("请输入两个数:\n"); scanf("%d%d",&num1,&num2); max1 = Max2(num1,num2); printf("最大值为%d\n",max1); } void Max(void) { int num1,num2; int max =0; printf("请输入两个数:\n"); scanf("%d%d",&num1,&num2); max = (num1>num2)?num1:num2; printf("输出最大值为%d\n",max); } int Max1(void) { int num1,num2; int max =0; printf("请输入两个数:\n"); scanf("%d%d",&num1,&num2); max = (num1>num2)?num1:num2; return max; } void Funtion1(void) { printf("11111\n"); return ; printf("22222\n"); } int Max2(int num3,int num4) { int max =0; max = (num3>num4)?num3:num4; return max; }
定义
数据类型 函数名(形参)
int main(void) { return 0; }
数据类型:函数的返回值的类型, --- return对应
4种基本类型 指针 枚举
void
return
返回函数的返回值
结束
函数名:望文生义
1.数字字母下划线
2.数字不可以放开头
3.区分大小写
4.不能与关键字相同
形参:函数定义时的参数
形参开辟空间:函数调用时
和普通定义变量一样
数据类型 函数名(形参)//函数头 { //函数体 }
声明
作用:告诉调用函数子函数的存在
数据类型 函数名(参数);//分号必须加
函数头;
声明放在调用函数上面
调用
#include void fun(void); int sum(int a,int b); int main() { int c; fun(); c = sum(3,4); printf("c = %d\n",c); return 0; } void fun(void) { printf("i am fun\n"); } int sum(int a,int b) { int c; c = a+b; return c; }
函数名(实参)
没有形参,就不用传递实参。
函数调用时注意函数有没有参数和返回值
子函数不会自己执行,只有被调用才会去执行
形参和实参
形参:函数定义时写的参数
形式上的参数
实参:函数调用时写的参数
实际的使用的参数
函数调用时把实参的值赋值给形参
#include void fun2(int a) { a = 100; printf("fun2 a = %d\n",a); } int main() { int d=10; fun2(d); printf("main d = %d\n",d); return 0; }
全局变量和局部变量
全局变量
位置
在函数的外面定义
作用范围
从定义开始,到源程序结束位置
作用时间(释放数据空间)
从定义开始,到整个工程结束。
定义未初始化的时候值是0
局部变量
位置
在函数的内部定义
作用范围
从定义开始,到定义这个变量的函数结束
作用时间
从定义开始(函数调用),到函数结束。
定义未初始化的时候值为乱码
注意点:
当全局变量碰到局部变量,使用局部变量(全局和局部名称相同)
c语言开辟内存的五个大区
栈区
由编译器自动开辟和释放,存放局部变量和形参等。函数结束时自动释放
堆区
由程序管理员开辟和释放,如果开辟完没有释放,到整个工程结束自动释放
全局变量区
由编译器自动开辟和释放,存放全局变量和静态变量等。整个工程结束时自动释放。
静态变量(static 局部变量):
作用范围(局部)
和局部变量一样
作用时间:和全局变量一样
文字常量区
存放常量
只读区域
代码段
存放二进制代码
static和extern关键字
修饰类关键字
static
固定的
修饰全局变量和函数
表示该全局变量或者函数只能在本文件内使用
修饰局部变量表示定义了一个静态变量
#include void fun(void); int main() { fun(); fun(); fun(); return 0; } void fun(void) { static int a=1; printf("a = %d\n",a); a++; }
extern
外来的
修饰全局变量和函数
表示该变量或则函数来自外部文件