你好, 欢迎｡
在这堂课中, 我想谈谈 关于从函数返回数据｡
到目前为止, 我们已经知道 我们知道它为什么有用,
我们知道如何定义函数 知道如何将数据传递给函数｡
现在我们想谈谈 可以从函数返回数据, 这也是非常有用的｡
在前面的示例中, 当我们 将两个数字相乘,
则乘法函数会显示 在终端的计算｡
还记得吗我们有过 printf语句｡
此外, 我们还有一个例子, 之前只是一个简单的函数｡
我们只是打印出数据 函数内部｡
我们想做个好人 因为它实际上做的不止一件事｡
它实际上把它打印出来了, 返回数据并在main函数中打印输出数据｡
您可能并不总是希望 显示计算结果
功能变得更 更灵活､
更通用, 从而允许使用 如果可以返回数据, 则需要更多｡
所以函数可以返回数据 使用C语言中的特定语法｡
我们应该熟悉这个 因为还记得我们的主要功能 我们在很多例子中返回了很多数据｡
所以我们已经接触到了一些｡
我们只是还没有 我明白这意味着什么
让我们再看一下 函数的一般形式｡
记住, 这个函数标头｡
我们有一个返回类型 第一次被定义的词｡
然后我们有了名字然后 我们在括号内用逗号分隔参数｡
我们已经知道了 名称和参数｡
第一件事是返回类型｡
返回类型指定 返回函数返回的值的数据类型｡
函数可以返回任何类型的数据｡
你只需要让编译器知道 返回的数据类型｡
它是一个整型浮点型双精度型 无论它是什么, 都必须在函数头中指定它｡
传回型别｡
我们看到的返回类型 且您可以指定函数返回值类型
只要它在c中是法律的类型｡
我提到了主要的问题, 双精度浮点数等等｡
但你也可以 枚举型别和指标｡
我们还没有讨论指针, 但是 当你可以返回指针的时候,
它会变得非常非常灵活｡
返回类型可以 也是回避型｡
您经常会看到这个关键字void｡
我们现在明白了它的含义｡
Void表示没有数据 将被归还｡
如果您在 函数名, 则不会返回任何数据｡
如果在参数中看到void 列表中, 您没有传递任何数据｡
Void只是一个通用关键字, 对于返回类型和参数, 您还注意到可以使用void
作为一个指针, 但我们会在讲到这个的时候讲到这个｡
但空虚是一种沉默｡
你之所以把 而不是仅仅不包含任何内容
使程序更易读｡
实际上, 当您将数据传递给
函数, 并且没有要传递的数据, 则可以有 它只是空括号｡
很容易阅读如果 里面有空隙
与返回类型相同, 但 返回类型必须为void
你不能让它空着｡
Void表示没有数据 会被归还｡
return陈述式｡
我们已经讨论过如何 确定将返回哪些数据, 但如何
您实际上返回了数据｡
在函数体中, 您 我必须有一个声明,
你可以说你要返回什么｡
因为记得尸体的一 函数可以包含大量数据｡
它可以有局部变量, 可以
你知道这个函数可能在做一个特定的计算 可能要做多次计算, 你想返回什么｡
幸运的是有这样一句话 使用关键字return｡
如果您提供退货 在或表达式之后没有变量名, 这意味着
只是退出该函数｡
它类似于循环中的中断｡
你才刚回来 函数中的值｡
您可以在 定义为void的函数｡
它清楚地表明 您将退出该函数｡
你真的应该 返回函数底部的一个点｡
我们以后再谈这个, 但是你 函数中不能有它｡
如果你在任何地方看到它 一个函数, 就意味着你要跳出这个函数
之所以说 当你退出这个函数的时候很清楚｡
如果您有多个退货 即使在整个函数中都返回数据,
很难说你什么时候回来｡
所以我喜欢做的是 函数是创建变量并且只在底部返回一次｡
如果我需要在 一个函数或者我是说一个函数中的特定if语句或者
我将设置变量然后在底部返回它｡
所以如果你有回报 之后没有任何内容,
这意味着您正在退出 函数, 但不返回任何数据｡
这个真的没有用那么多｡
你只能在虚空中使用它 函数, 不返回值｡
的更一般形式 return语句正在返回某个变量或某个表达式｡
X加y或返回x｡
这种形式的return语句 与函数头中指定的返回类型一起使用｡
如果要返回一个整型值, 无论返回什么变量或表达式都必须是整型｡
它的计算结果必须是int, 如果您要返回一个int｡
如果你要转双圈, 它值必须加倍｡
记住, 你可以有很多 返回不同类型的数据｡
返回的值
调用程序时产生的值 表达式计算结果为
如果你有x加上y, 它会返回 表达式结果,
且它必须与 函数声明｡
包含语句的函数
但不返回值的函数必须具有 返回类型为void, 必须为
你不能没有｡
如果你没有这个能力 不返回任何数据,
您将收到一条错误消息｡
编译程序时 并且它包含一个返回类型为void的函数, 该函数试图
返回值编译器错误｡
Void表示没有返回数据, 不 返回一个表达式变量｡
如果函数没有void
返回类型, 并且它具有有效的返回类型, 则您将获得
如果编译器尝试返回与 指定的, 或如果它们只是由传回, 且其后没有任何内容｡
所以要注意这个｡
开头的那些关键字 函数声明非常重要｡
它直接影响到实施 编译器会告诉你
而您没有返回正确的数据, 或者如果您没有返回任何 或者在不应该返回数据的情况下返回数据｡
如果运算式产生值
与函数中的返回类型不同 标头, c将尝试转换它｡
编译器将尝试 如果可以的话, 转换它｡
例如, 如果你要返回 一个浮点数, 而表达式是I加上x,
再加上两个整型数, 将其转换为浮点数｡
如果要返回一个int值并且
你有一个进行浮点计算的表达式 会将其转换为it｡
这样会丢失数据 大小写, 但它会进行转换｡
不一定能 按钮关闭对话框｡
在不可能的情况下, 编译器会产生一个错误
如果你想返回一个int 当你应该返回一个字符串或者当你试图 返回枚举时,
它是 会抱怨编译器｡
您也可以有多个 函数的return语句, 我简要地提到了这一点
你为什么不想做｡
但你能做到｡
您可以有多个退货 在整个功能中｡
这只会让代码更难 因为你会跳出函数的所有地方｡
当你回来的时候 多个返回值,
如果您有一个函数,
只需再次确认 返回的值, 则有一个表达式或值 或者可以转换｡
既然我们已经讨论了
传递数据和返回数据, 我们知道如何调用函数, 但我还想谈谈关于调用的其他一些事情｡
调用一个函数只需使用 函数名, 后跟传递的参数,
这些参数是 在括号之间,
我们知道, 我们知道, 但我 我想正式地说明一下, 这就是调用函数的方法｡
当您调用该函数时, 在括号中指定的参数的值 将被赋值给函数中的参数｡
参数具有代表性 数据类型的变量｡
然后可以使用该变量 函数体中的任何一侧｡
当函数退出或执行时 在某些代码中, 它将使用那些作为参数提供的值, 正如我提到的｡
在执行以下操作时指定的参数 调用函数时, 类型编号和顺序应一致｡
函数头中的参数｡
秩序也要紧, 我没 但如果它是int
x double y, 首先必须 传入int, 然后传入double｡
你不能传入double和int｡
命令非常非常明确｡
因此, 请确保将数据作为
调用函数的方式与调用函数的方式相同时 在参数列表的函数头中声明, 传递
正确的类型也是如此｡
调用函数和 分配返回的数据｡
如果函数正在返回数据,
则 函数可以通过使用等于运算符和之后的 也可以将其存储在一个局部变量中｡
它也可以与表达式一起使用｡
所以你可以说return x plus 你可以说返回x,
你可以说返回一个常数｡
这个例子是在你之后 当您要指定传回的数据时, 请叫用呼叫｡
所以你可以说int x等于my 函数调用,
函数返回的任何值都将被赋值给x｡
如果函数调用返回 x加y, x加y的结果将被赋值给x｡
这样你就可以将
从函数调用返回, 方法是在
等号左手的函数调用和 等号的右边｡
调用函数没有 以识别或处理从被调用函数返回的值｡
你不需要 那个作业｡
如果函数返回数据并且 您不关心数据, 您根本不需要有对等项,
您可以只调用该函数｡
这说不通因为 如果它正在返回数据,
那么您可能需要查看 “你不用担心, 我会保护你的｡ ”
编译器不会 如果只调用函数而不处理数据,
我会抱怨｡
你怎么做取决于你 我想使用函数调用返回的数据｡
下面是一个调用 函数, 并从函数返回数据｡
在本例中, 将两个数字相乘｡
这就像我们 以前有,
但上一个示例未返回任何数据｡
上一个示例显示了输出｡
在本例中, 我们 不显示任何输出｡
我们正在把数据 然后在main函数中显示输出｡
这里我们将两个数相乘 采用两个整数作为参数｡
我们把这两个整数相乘｡
而不是把这个打印出来 我们使用return关键字,
然后 指定一个名为result的变量, 然后用分号结束它｡
当您看到return关键字时 在函数体中, 返回数据
记住, 你可以 具有多个位置｡
但你只能让它返回一个 不能返回多个值｡
因此, 如果在 多个位置, 它必须在if语句或循环中,
因为 你现在就跳出来｡
如果您有一个回车, 后面跟着
它会给予你一个错误, 因为它会告诉你 在这两种情况下都有两个返回值｡
你总是回到 结果, 您不能这样做
但return关键字很重要｡
您正在返回一个变量｡
然后你会看到 返回的数据被分配到的函数
另一个局部变量result｡
你会发现我们用的是 同样的名字｡
这与功能有关
我们下节课会讲到的范围 变量与全局变量｡
你只需要注意 在这堂课中, 这个函数
两个数字正在返回数据｡
你怎么还, 你就怎么还
使用return关键字后跟表达式的变量｡
你还注意到 两个数字在函数头的顶部指定返回类型｡
它返回一个int值｡
所以我们必须返回一个int｡
你也注意到当我们分配 主函数中的数据,
我们在int中赋值给它.
分配那些很容易我们 只需使用等号运算符｡
如果我们不关心数据, 我们 可以调用两个数的乘法,
然后什么都不做｡
等我们拿到数据 然后我们使用printf函数将其打印出来｡
这使得函数更加 有凝聚力的数据｡
我们并不是在展示 返回函数中的结果｡
有时候我们不想
要显示结果, 我们只需要将两个数字相乘, 然后 我们可能要分产品｡
灵活地传递数据 和返回的数据是一件大事｡
这是一个简单的例子｡
你会接触到 下一个挑战中会有更多内容｡