c语言中return的易错点

有很多同学在写程序的时候对于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类型去判断并且返回其真值;

相关推荐

  1. C语言 getchar()原理及解析

    2024-04-14 18:38:01       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 18:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 18:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 18:38:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 18:38:01       20 阅读

热门阅读

  1. 前端学习_鱼皮哥

    2024-04-14 18:38:01       13 阅读
  2. docker相关文章

    2024-04-14 18:38:01       13 阅读
  3. 我为什么不放弃独立博客

    2024-04-14 18:38:01       15 阅读
  4. Linux Shell Pattern 正则表达式详解

    2024-04-14 18:38:01       16 阅读
  5. LWIP2.1.3+UCOSIII3.08的系统接口arch.c修改

    2024-04-14 18:38:01       14 阅读
  6. docker 修改镜像文件

    2024-04-14 18:38:01       15 阅读
  7. Qt窗口的闪烁QWebEngineView

    2024-04-14 18:38:01       15 阅读
  8. docker 容器指定utf-8编码

    2024-04-14 18:38:01       14 阅读
  9. centos7.9 系统初始化(自用)

    2024-04-14 18:38:01       14 阅读
  10. 在Qt平台上的网络应用编程原理

    2024-04-14 18:38:01       15 阅读
  11. Redis 是如何实现消息队列的?

    2024-04-14 18:38:01       17 阅读
  12. 贪吃蛇web小游戏

    2024-04-14 18:38:01       13 阅读