是什么决定了一个函数是 void 类型还是非 void 类型?仅仅是函数体中存在关键字 return
吗?资源通常说 non-void types
返回一个值。为什么以及何时应该返回一个值?
例如,更喜欢下面的代码(code 2
),我不需要“返回”任何东西;但该程序运行良好。
将 code 2
与我返回值的 code 1
进行比较。最终,它达到了同样的目的。进一步扩展这个问题,是什么使 greet()
中 code 3
的返回类型无效?
所以我再问一句:是什么决定了一个函数是void类型还是非void类型?仅仅是函数体中存在关键字 return
吗?
代码 1:
#include <iostream>
#include <string>
using namespace std;
int dispNumber(int n1) {
return n1;
}
int main() {
int n1 = 22;
cout << dispNumber(n1);
return 0;
}
代码 2:
#include <iostream>
#include <string>
using namespace std;
void dispNumber(int n1) {
cout << n1;
}
int main() {
int n1 = 22;
dispNumber(n1);
return 0;
}
代码 3
#include <iostream>
using namespace std;
void greet(string n1) {
cout<<"My name is " << n1;
}
int main() {
string n1 = "Fred";
greet(n1);
return 0;
}
答案 0 :(得分:2)
为什么以及何时应该返回值?
具有某些结果值的函数,然后该函数通常应将输出返回给调用者。您可能从数学中熟悉的几乎所有函数都是这样的函数。
想象一下,例如一个将两个输入整数相加的函数。这样的函数有一个结果:输入的总和。该函数应该将该值返回给调用者。
<块引用>是什么决定了一个函数是 void 类型还是非 void 类型?
函数类型是非空类型。唯一的 void 类型是 void
,它不是函数类型。
是什么让代码 3 中的 greet() 的返回类型无效?
函数声明的第一部分是返回类型:
void greet(string n1) {
^^^^
因为函数的返回类型声明为void
,所以返回类型为void
。