今日学习内容:条件运算,逗号运算,初见函数,函数的定义、使用,从函数中返回,函数原型,参数传递,本地变量
链接:( 暂无 我看完下部分再一起做 )
笔记:
1.初见函数
代码复制:程序质量不良的表现
求和函数:
#include <stdio.h>
//求和函数
void sum(int begin, int end)
{
int i;
int sum = 0;
for (i = begin; i <= end; i++)
{
sum += i;
}
printf("%d到%d的和是%d.\n", begin, end, sum);
}
int main()
{
sum(1, 10);
sum(20, 30);
sum(35, 45);
return 0;
}
2.函数的定义和使用
定义:能接收零个或多个参数,做一件事,返回零个或一个值
函数定义:
函数名(参数值) ()调用函数,so即使没有参数也要()否则会认为你没使用该函数
没有()标记,这就 只是一个变量
有参数:要给出right数量、顺序
值会被按顺序依次初始化函数中的参数,且函数知道每次是哪里在调用它,so会返回正确的地方
如果函数要返回一个结果,用return返回调用它的地方
3.从函数中返回值
- return ;
- return 表达式 ;
一个函数中可出现多个return且不一定要放在最后(但不符合单一出口理念,可以但是不好,难改)
作用: - 赋值给变量
- 再传递给函数
- 可丢弃
没有返回值的函数 - 用void 函数名(参数表)
- 不能用带值的return
- 可无return
- 调用时不能做返回值的赋值
函数有返回值,必须用带值的return
4.函数原型
函数先后关系:
声明不是函数,先声明,使用与定义谁先谁后都行,在定义时还会自己判断定义与声明是否一致(若不一致则会报错冲突)
函数原型:告诉编译器函数长啥样
- 名称
- 参数
- 返回类型
- 现在一般写在调用它的函数前面
- 参数写不写都行,有类型就🆗(只检查类型,不检查参数名称)
“函数头 ;”
5.参数传递
可传递给函数的值是表达式的结果(包括字面量 、 变量 、 函数返回值 、 计算结果)
调用函数本身就是个表达式(编译器好像家长,偷偷帮你解决问题,虽然有时候会出错)
C语言调用函数时,只能传值给函数
传值:
6.本地变量:
生存期:变量出现、消亡的时候
作用域:访问该变量的范围( 变量可以起作用)
- 本地变量定义在块内
- 它可定义在函数、语句的块内甚至随便一对大括号来定义变量
- 程序运行进块前,其他变量不存在,离开则其中变量消失
- 块外定义的变量在内仍有效,块里定义了与外同名的变量会掩盖外的
- 不在同一块内定义同名变量
- 本地变量不会被默认初始化 而参数在进入函数时就被初始化