C语言——函数

函数


优点

1,降低代码耦合度
2,提高代码复用率
3,降低代码冗余度
4,提高代码可读性

思想

封装(包装)

声明(背诵)

语法:

extern 函数名(形参列表) ;
注意 ;
此时形参列表中变量名可以忽略不写

定义(背诵)

语法:

返回值类型 函数名(形参列表)
{
函数体
}
返回值类型 :返回值的数据类型,如果没有返回值写void(NULL空)
函数名 :标识符
形参列表 :定义的多个变量,使用逗号隔开,可有可无
函数体 :封装的代码
return :结束当前函数
return 值或变量 ;结束当前函数并返回该值或变量,此时这个值或变量就是返
回值
一个函数只能有一个返回值
定义位置:函数外
注意:
同一个程序中不能出现两个或两个一个函数名相同的函数

调用(背诵)

语法:

通用

          函数名(实参列表);

调用有返回值的

        变量名 = 函数名(实参列表)

注意

          实参列表要与形参列表一致(长度一致,顺序一致,数据类型一致)

调用位置:函数中


定义与调用的关系

先定义,后调用

定义只需一次,但是可以调用无数次


分类

系统调用

        可以直接操作内核的函数,成为系统调用

库函数:

        有系统提供的函数称为库函数,printf,scanf,rand

自定义:

        自己定义的函数


分布学习

1,自定义无参无返回值的函数并调用

定义一个函数计算 5 的阶乘
void jc()
{
int num = 1;
for(int i = 1; i <= 5; i++)
{
num = num * i;
}
printf("5的阶乘结果为:%d\n",num);
}
jc();

2,自定义有参无返回值的函数并调用

定义一个函数计算指定的数的阶乘
void jc02(int x)
{
int num = 1;
for(int i = 1; i <= x; i++)
{
num = num * i;
}
printf("%d的阶乘结果为:%d\n",x,num);
}
jc02(3);
int a = 5;
jc02(a);

3,自定义无参有返回值的函数并调用

定义一个函数生成一个大写字母 , 返回给外边使用
char getChar()
{
int x = rand() % 26 + 65;
char c = (char) x;
return c;
}
getChar();
char c2 = getChar();

4,自定义有参有返回值的函数并调用

int jc03(int x)
{
int num = 1;
for(int i = 0; i <= x; i++)
{
num = num * i;
}
return num;
}
jc03(3);
int x = jc03(3) ;

特殊情况(掌握)

1,多重调用

函数A中调用函数B,函数B中调用函数C,...

2,递归

函数本身调用本身

多文件编辑(掌握)

gcc 要编译的所有的源文件名 -o 生成的可执行文件名
注意 :
多个源文件之间使用空格隔开
无需编译头文件
头文件:
对应的源文件的声明文件
头文件名与源文件名一致 , .h 结尾
头文件中可以书写 C 语言代码
头文件展开
"": 现在当前目录下寻找 , 如果没有再去系统路径下寻找
<>: 直接去系统路径下寻找

变量存储(背诵)

局部变量

定义位置:函数中

定义语法:数据类型    变量名;

默认值:随机数

存储区域:栈中

作用域:局部变量所定义的代码块中可用,同一个作用域下变量名不能相同

生命周期:随着所在函数的调用而生成,随着所在函数执行完毕后销毁

全局变量

定义位置:函数外

定义语法:数据类型    变量名;

默认值:0

存储区域:全局区

作用域:当前程序中

生命周期:随着所在程序的启动而生成,随着所在程序的执行完毕而销毁

静态局部变量

定义位置:函数中

定义语法:static    数据类型    变量名;

默认值:0

存储区域:全局区

作用域:当前代码块中

生命周期:随着所在的函数的第一次调用而生成,随着所在程序的执行而销毁

静态全局变量

定义位置:函数外

定义语法:static   数据类型    变量名;

默认值:0

存储区域:全局中

作用域:当前文件中

生命周期:随着所在程序的启动而生成,随着所在程序执行完毕后销毁

const修饰的变量

特点:只能赋值一次,称为常量
语法:
const 数据类型 变量名 = 值;
变量名 = ;// 错了 , 不能在此赋值
变量名 // 可以使用

全局函数与静态函数(背诵)

全局函数

普通的函数
可以在当前程序中任何一处使用
语法:
返回值类型 函数名(形参列表)
{
函数体
}

静态函数

使用 static 修饰的全局函数
只能在当前文件中使用
语法:
static 返回值类型 函数名(形参列表)
{
函数体
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值