2019年12月第四周回顾旧知

函数

在C语言中,由于C语言的函数库不太强大,如果把所有的程序代写在一个主函数中,会使主函数变得很长,不容易理解和发现错误,因此我们可以用“组装”的方法来使我们的代码变得更整洁美观,这就是模块化程序设计。我们可以事先定义好一些函数,然后在主函数中可以用一个简洁的函数名来实现各种我们所需要的功能。
如上面这个源代码,它利用两个函数来实现输出一串星号和输出一行字符:

2019年12月第四周回顾旧知
2019年12月第四周回顾旧知
自定义的函数我们在定义时不能在一个函数内再定义一个新的函数,但是我们可以嵌套调用,即在一个函数内在调用另一个函数,如:
2019年12月第四周回顾旧知
在函数中我们还可以实现递归调用,即在函数内直接或间接的使用函数本身,这既是函数的递归调用,如:
问题:有五个学生坐在一起,问第五个学生多少岁,他说比第四,个学生大两岁。问第四个学生岁数,他说比第三个学生大2岁。
问第三个学生,又说比第二个学生大2岁。问第二个学生,说比第一个学生大二岁。最后问第一个学生,他说是10岁。请问第五个学生多大。
要求第五个学生的年龄,,必须知道第四个学生,要知道第四个就必须知道第三个学生的年龄,而第三个学生的年龄有取决于第二个学生的年龄,第二个学生取决于第一个学生的年龄,并且没一个学生都比第一个学生大二岁。即:
age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10
源代码如下:
2019年12月第四周回顾旧知

指针

C语言中指针是代表的是内存中的一个地址,内存是用变量存储的地方,指针就是指向该变量地址的一个箭头,C语言中将地址形象化的称为指针,意思就是通过它能找到以他为地址的内存单元。
定义指针变量的一般形式为: 类型名 *指针变量名
在定义变量时必须指定基类型,也就是类型名。
利用指针可以解决很多问题。
在函数中由于是值传递,所以实参的值不会改变,而return语句只能返回一个值,此时我们就可以利用指针,不改变实参,而是改变实参地址内存中的存储值,进而利用函数“返回”多个值。
如:
利用函数交换进行比较大小:
2019年12月第四周回顾旧知
2019年12月第四周回顾旧知
2019年12月第四周回顾旧知