有很多同学在写程序的时候对于return的用法其实并不了解,致使在写代码的时候经常犯错有不自知,今天简单给大家梳理一下c语言中return的一些常用用法;
1.return a做函数的返回值
1)main函数中的return 0;
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
cout << x;
return 0; //此处的return0表示程序正常结束
}
main函数的返回值是用于说明程序的退出状态的。例如:main函数最后返回0,则代表程序正常退出,运行没有问题;而返回非零则代表程序的异常退出。
2)子函数里的return a;
#include <iostream>
using namespace std;
int check(int x)
{
return 4; //此处表示函数返回值为4
}
int main()
{
int x;
cin >> x;
cout << check(x);
return 0;
}
这个地方只有一个return 4,即表示这个函数的返回值为4,即相当于将main函数中的check(x)掉换成了check(x)这个函数的返回值4;
3)子函数里的return x;
#include <iostream>
using namespace std;
int check(int x)
{
x += 2;
return x;
}
int main()
{
int x;
cin >> x;
cout << check(x);
return 0;
}
此处子函数check(x)的返回值变成了变量x,即代表将此时的x的值作为函数返回值返回到main函数相对应的位置上去;
同样的,如果子函数中有其他的变量a、b也是同理,包括return x+y或者是x+3等;
2.return 赋值或return 判断作为返回值;
1)return x+=5;
当在int型子函数中
#include <iostream>
using namespace std;
int check(int x) //子函数的返回类型为int
{
return x += 2;
}
int main()
{
int x;
cin >> x;
cout << check(x);
return 0;
}
我们可以看到,当我们的子函数返回类型为int并且我们是以赋值操作作为函数返回值的,那么编译器会将此操作(指的是赋值操作)完成后再返回变量值;
当在bool型子函数中
#include <iostream>
using namespace std;
bool check(int x) //子函数的返回类型为bool
{
return x += 2;
}
int main()
{
int x;
cin >> x;
cout << check(x);
return 0;
}
我们都知道,对于我们的bool型函数来讲,它的返回值应该都是true与false或者是1和0,那么我们将一个赋值操作或者加减操作等任何操作放在他的返回值中,计算机就会判断它为真还是假,而对于计算机而言,所有的操作(赋值、加减等)都是为恒真,故此它只会输出1;
2)return x % 2 != 1;
#include <iostream>
using namespace std;
int check(int x) //子函数的返回类型为int
{
return x % 2 != 1;
}
int main()
{
int x;
cin >> x;
cout << check(x);
return 0;
}
#include <iostream>
using namespace std;
bool check(int x) //子函数的返回类型为bool
{
return x % 2 != 1;
}
int main()
{
int x;
cin >> x;
cout << check(x);
return 0;
}
最后我们可以看到,当return后是判断类型的语句时,不论我们的子函数类型为int抑或bool,计算机都会按照bool类型去判断并且返回其真值;