C语言学习笔记———函数
前面介绍了C语言一些基本的语法组成,无非就是表达式,语句,运算符。这些都是元素可以组合成C语言程序的基本单位,函数。这个函数和数学里的函数,还是有区别的。函数在C语言里面,是对某一个过程的封装,也是对代码的一个复用。还是简单的介绍一下,函数的一些常见用法吧。
大家多少都学习过数学,我们先了解一下,C语言里面,如何表达数学中的函数。先来看一个简单的例子,求一个数的绝对值。
double y(double x) { return x >= 0 ? x : -x; }
求绝对值的过程很简单,当x是正数的时候,函数值就是它本身,x为负数时,函数值就是它的相反数。下面我们来介绍以上代码的含义。其中 double y(double x) 是函数头,也叫函数原型,相当于函数的一个身份证,从左往右,第一个double表示了函数的返回值类型,返回值是我们要通过这个函数得到的值,返回值类型等同数据类型,只不过它还可以是void,空类型,就是说我们不打算通过这个函数得到什么值,只是希望它能帮我们做一些事。括号里的是参数列表,至于如何写参数,例子里已经出现了写法,这里不必赘述。
return 后面的内容,是函数要返回的值,返回值类型一定和return后面返回的值类型相同。至于这个表达式怎么写,写法很多。理论上,只要表达式的值和返回值类型相同。那么这个返回表达式就是合法的。至于大括号括起来的部分,叫函数体。也就是说,函数 = 函数原型 + 函数体。
上面的函数还可以这么写,可以体会一下,三目运算符的简洁。
double y(double x) { if (x >= 0) { return x; } return -x; }
函数一般执行到return语句为止,return语句执行完毕以后,下面的语句就不再执行。
我们还可以写一个分段函数,函数定义如下:
double y(double x) { return x == 0 ? 0 : 1 / x; }
一般情况下,当我们只面对两种情况,并且两种情况的代码都只有一句,就可以使用三目运算符。
函数的语法,到这里就算是介绍完了。很简单,应用却遍布于方方面面。至于函数的一些高级用法,还需要介绍指针,数组这类东西。