课程章节:
课程名称:物联网/嵌入式工程师
章节名称:第4周之第四讲 1-5 至 1-6 C语言中的函数:函数传参的值传递
讲师姓名:大白老师
课程内容:
C语言中的函数:函数传参的值传递
C语言的函数传参
传参的本质
本质:函数传参的本质,变量之间的赋值操作。
值传递
功能:在传递变量中保存的数据。核心思想是传递什么样子类型的变量。在接收的位置,就定义什么样类型的变量来接收。
代码示例
#include <stdio.h>
//函数传参的本质:变量之间的赋值操作
//int x = a;
//int y = b;
int do_calc(const int x,const int y) //函数的定义
{
int sum = 0;
printf("x = %d y = %d\n",x,y);
sum = x + y;
return sum; //在函数结束前,返回一个数据给调用者,返回值的类型要和sum匹配
}
int main() //程序的入口,开始的地方
{
int a = 0,b = 0;
int t = 0;
printf("please input two data : ");
scanf("%d%d",&a,&b);
//t = sum;
t = do_calc(a,b); //函数返回值的使用
printf("a + b = %d\n",t);
t = t * 100 - 8;
printf("expression result = %d\n",t);
//计算: ret = (x + y) * 100 - 8
return 0;
}
学习笔记:
课后任务
练习
//判断y是否是闰年,若是闰年,返回1,否则返回0
int do_leap(int y)
{
}
int main()
{
int year;
//1.要求用户从键盘输入1个年份赋值给year。
//2.然后调用do_leap(year)函数,判断是否是闰年
//3.利用ret变量接收返回值,若是闰年,输出"xx年是闰年",否则输出"xx年不是闰年"
}
代码
#include <stdio.h>
//判断y是否是闰年,若是闰年,返回1,否则返回0
int do_leap(const int y)
{
int ret = 0;
if (y%4 == 0 && y%100 !=0)
{
ret = 1;
} else if (y%400 == 0){
ret = 1;
} else {
ret = 0;
}
return ret;
}
int main()
{
int year,ret;
//1.要求用户从键盘输入1个年份赋值给year。
printf("请输入一个年份:\n");
scanf("%d",&year);
//2.然后调用do_leap(year)函数,判断是否是闰年
ret = do_leap(year);
//3.利用ret变量接收返回值,若是闰年,输出"xx年是闰年",否则输出"xx年不是闰年"
ret ? printf("%d年是闰年\n",year) : printf("%d年不是闰年\n",year);
return 0;
}
课程评价:
通过函数传参的学习,能够使代码块更加低内聚高耦合。