前言:C语言里的函数跟我们数学里学的函数好像并不是一个东西,C语言里的函数它没有解析式,没有图像,没有坐标。函数,从本质意义上来说,就是用来完成一定的功能的......好啦,概念啥的去死,没啥用。关于函数,有些东西要讲。
1.先看这段代码,然后是它的运行结果
。十分简单,我们通过定义和调用函数,把a[0]和a[1]里面的元素交换了一下。实现了我们要找出这两个数的大小。
2.同样是类似的问题,我们再看一段代码,它的输出结果是
很明显这不符合我们的本意。在这个代码里面,为什么我们的a和b的值没有进行交换呢,我们明明已经调用了交换函数可是a和b的值并没有交换。这里又涉及到了函数的一些神奇的地方,就是你传参的过程中,你传过去的是什么,传回来的不会变。那就又有一个问题了,为什么第一个代码里面可以进行交换?这是因为数组传过去的不是值,而是数组的地址,函数改变的是他的值,没有改变地址。而第二个代码里,传过去是a和b的值,传回去的还是a和b的值,不会变。
3.如此一来那是不是函数就没啥用了呢,并不是,请看下一个代码,再看其输出结果
,是吧,我们只需要把printf这个语句放到函数里面就可以不用担心这些了,因为在函数里面它是已经交换了的。