是什么决定一个函数是void类型还是非void类型?仅仅是关键字return
在函数体中的存在吗?资源通常说non-void types
返回一个值。为什么,什么时候我应该返回一个值?
例如,更喜欢下面的代码(code 2
),我不需要"return"任何东西;然而,这个程序运行得很好。
比较code 2
和code 1
,我返回了一个值。最终,它达到了同样的目的。进一步扩展问题,是什么使code 3
中greet()
的返回类型为空?
所以我再问一次:是什么决定了一个函数是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
。