C 语言学习 第六次作业总结
本次作业,同学们开始学习函数。通过之前和同学们的沟通,似乎同学们在这里遇到的问题比较多。下面,我先帮同学们整理下函数的相关知识点。
什么是函数
首先,需要明确的是,什么是函数。所谓函数,也就是一段有名的代码段。大家可以考虑如下的函数:
void add(int a,int b){
int c = a + b;
}
在之前的学习中,大家当需要使用到两个数字相加这一功能,可能仅仅定义一个变量用于存储相加的值int c = a + b;
。
但是在使用中可能会发现,总是需要使用到两个数加和这一“算法”。那么,这一代码块如何能够复用呢。于是,便利用了函数。
但是,在上面的例子中虽然能够计算两个数的和,但是却无法知道它的结果。于是,就需要一个返回值(这仅仅是一种实现的手段)。
add
函数变成了下面的样子:
int add (int a,int b){
int c = a + b;
return c; // 最终简化为 return a + b;
}
这样,便能够将计算得到的值传递出来。
上面的例子虽然很简单,但是已经包含了一个函数的所有需要的元素:返回值
,函数名
,参数
,函数体
。
函数的范围
之前,有同学问我“老师,return语句是不是代表一个函数的结束”。这里要强调的是,并不是。
C 语言的函数体是被大括号包围的。从{
开始到}
结束,才是整个函数体的范围。return
语句仅仅是跳出函数,
后面的语句不再执行。但是不能因此就说return
语句就是函数的结束。
函数返回数组的问题
C 语言本身并不能返回数组。但是可以返回指针(这个概念在后面将会学习到)。通过指针,便能够实现目标需求。
函数传递参数的问题
C 语言是一种强类型的语言。所谓强类型,就是将某一个数据声明为什么类型,在整个生存周期,就是什么数据类型。
除非进行强制类型转换或者是在运行过程中存在隐式类型转换。依旧以上面的add
函数为例,传递入的两个参数都是int
类型,
则传递的参数,也应该尽量都是int
类型。否则可能会出现奇怪的错误。
函数的返回值的作用
虽然在上面的例子中,函数返回值的作用为返回传入的两个参数的加和。但是在实际的开发中,
更多情况下函数的返回值都是用于判断此函数的执行状态,或者是兼具执行状态的检查。另外,
当前写的 main
函数的返回值都习惯性的写为 return 0
。
实际上,在 GUI 以及一些其他的程序中,main
函数也会根据运行状态,提供不同的返回值。
虽然 main
函数不能被其他函数调用,但是这个值能够被操作系统捕获。操作系统根据此值,便能够确定程序的运行状态。
作业情况统计
作业抄袭情况
本次作业,看到至少3份作业,代码相同:
https://coding.net/u/gdcs16_410/p/chap5/git/blob/master/C6_2.cpp
https://coding.net/u/gdcs16_418/p/chap5/git/blob/master/C6-2.cpp
https://coding.net/u/gdcs16_419/p/chap6/git/blob/master/C6-2.cpp