是什么使c++函数的空类型vs非空类型?



是什么决定一个函数是void类型还是非void类型?仅仅是关键字return在函数体中的存在吗?资源通常说non-void types返回一个值。为什么,什么时候我应该返回一个值?

例如,更喜欢下面的代码(code 2),我不需要"return"任何东西;然而,这个程序运行得很好。

比较code 2code 1,我返回了一个值。最终,它达到了同样的目的。进一步扩展问题,是什么使code 3greet()的返回类型为空?

所以我再问一次:是什么决定了一个函数是void类型还是non-void类型?仅仅是关键字return在函数体中的存在吗?

code1:

#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;
}

为什么以及何时应该返回值?

具有某些结果值的函数,该函数通常应将输出返回给调用者。几乎所有你在数学中熟悉的函数都是这样的函数。

假设有一个函数将两个输入整数相加。这样的函数有一个结果:输入的和。函数应该将该值返回给调用者。

是什么决定一个函数是空类型还是非空类型?

函数类型是非void类型。唯一的void类型是void,它不是函数类型。

是什么使得代码3中greet()的返回类型无效?

函数声明的第一部分是返回类型:

void greet(string n1) {
^^^^

因为函数的返回类型被声明为void,所以返回类型是void

最新更新