- C语言学习指南:从规范编程到专业级开发
- (美)杰夫·苏哈伊
- 499字
- 2025-02-23 15:03:29
4.5.3 通过return语句来赋值
函数(function)本身其实也是一条语句,这条语句能够把它的执行结果返回给调用方。如果函数的返回类型不是void,那么程序就会把函数的返回值放在调用该函数的那个地方,并且可以把它赋给类型兼容的变量。
我们可以把函数的返回值明确地赋给某个变量,也可以把这个值用在某一条语句里面。对于后一种用法来说,程序会在执行完这条语句之后丢弃该值。
下面我们看这样一个程序,它声明了inchesToFeet()函数的原型,并为该函数编写了定义代码:

观察这段代码时,我们要注意的地方在于,inchesToFeet()函数如何通过return语句把结果返回给调用方,以及调用方(也就是main()函数)如何将该值赋给feet变量。
inchesToFeet()函数把有待转换的英寸数(也就是someInches参数的值)通过一条简单的算式转化成英尺数,并把这个英尺数赋给函数中的someFeet变量。然后,函数把someFeet变量的值返回给调用方。程序在执行完这个函数后,会把main()函数里面写着inchesToFeet(inches)的那个地方换成inchesToFeet()函数的实际执行结果,也就是说,它会把inchesToFeet()函数返回的值赋给feet变量(也可以说复制到feet变量里面)。
刚才那段代码是把feet变量的声明语句跟赋值语句分成两行来写的:

其实这两行代码可以合并成一行:

合并之后的这条语句声明了一个叫作feet的double型变量,并且用inches-ToFeet(inches)所返回的执行结果初始化该变量。