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 函数不能被其他函数调用,但是这个值能够被操作系统捕获。操作系统根据此值,便能够确定程序的运行状态。

作业情况统计

C 语言学习 第六次作业总结

作业抄袭情况

本次作业,看到至少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

上一篇:Alice and Bob 要用到辗转相减


下一篇:POJ1704 Georgia and Bob