return语句有两种形式:
1.return;//不带返回值的return语句
2.return expression;//带返回值的return语句
不带返回值的return语句用于,中断返回值为void类型的函数的执行,而带返回值的return则不行。
使用return expression;的代码编译失败。
#include <iostream>
using namespace std;
void func(){
cout<<"begin"<<endl;
return 0;//error C2562: “func”: “void”函数返回值
cout<<"end"<<endl;
}
int main(){
func();
return 0;
}
将return 0;换为return;后,运行成功
#include <iostream>
using namespace std;
void func(){
cout<<"begin"<<endl;
return;
cout<<"end"<<endl;
}
int main(){
func();
return 0;
}
执行结果:
原因解释:
此时return;的作用相当于break;用于中断循环的作用,而return 0;则是return的另一种用法,专用于非void函数返回值的返回 。return的扩展:
#include <iostream>
using namespace std;
void f(){
}
void func(){
cout<<"begin"<<endl;
return f();//返回返回值为void的函数的返回值,可以执行成功
cout<<"end"<<endl;
}
int main(){
func();
return 0;
}
可以执行成功!