C++函数返回值介绍(含return 0 与 return 1 与 return -1介绍)

51 篇文章 2 订阅
47 篇文章 162 订阅

很多人在学习C++ 的过程中应该会留意到返回值的问题,特别是习惯用:int main()  的猿类同伴们。我们需要在函数结尾写个返回值。

int main(){


	return 0;
}

接下来就给大家简单介绍一下返回值。

一、返回值类型

C++函数可以返回多种类型,大致可分4种:

1. 返回void(无返回值);

2. 返回对象(内置类型对象和自定义对象);

3. 返回指针(普通指针和函数指针);

4. 返回引用;

1、返回void(无返回值);

初学C++用的就是void,如果没有特殊情况,写函数还是习惯用void。

void fun()
{
    //默认return;
}

2、返回对象(内置类型对象和自定义对象)

比较常见的就是返回值为int,因为C++中0可以表示假,非零数可以表示真。我比较喜欢通过返回int作为判断语句。用起来比较方便。比如下面的Legal(A)函数返回值为int,全部代码在:【数据结构周周练】003顺序栈与链栈这篇博客。

if (Legal(A))
	std::cout << "A 序列合法" << std::endl;
else
	std::cout << "A 序列不合法" << std::endl;

也可以返回我们自定义的对象,含义与内置对象一样。

Obj fun()
{
    Obj obj;
    ....
    return obj;
}

3、返回指针(普通指针和函数指针)

返回指针主要为返回普通指针和函数指针。

普通指针即函数声明的数据类型是内置对象,如int,char等。返回的类型与函数类型相同,用一个同样返回类型的变量作为返回值。

int * fun(int *p)
{
    return p;
}

函数指针即定义一个函数,并将其返回值作为指针类型返回。

#include<iostream>
using namespace std;

int Max(int i, int j) {
	return i >= j ? i : j;
}
typedef int(*PFun)(int, int);

PFun fun(int a) {
	cout << a << endl;
	return Max;
}
int main() {
	PFun pf;
	pf = fun(100);
	int max = pf(5, 8);
	cout << "max : " << max << endl;
}

4、返回引用

int& fun(int &i)
{
	return i;
}

二、return 0 与 return 1 与 return -1

1、return 0

第一个含义一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。

第二个含义表示假,一般用于bool函数返回值。在C++中也可以直接用int,返回值为0时为假。宏定义ERROR 与FLASE一般为0。

2、return 1

与return 0 的第二个含义相对应,表示真,正确。宏定义TRUE,OK一般为1。

3、return -1

与return 0 的第一个含义相对应,表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败,在数据结构中,一般指数据溢出,宏定义OVERFLOW 一般为-1。

4、数据结构周周练中的返回值

有很多人跟我说,为什么我的返回值一般都是返回1,因为函数结束时,一般用返回0表示函数无错误。其实函数原本的返回值应该为宏定义的TRUE或者OK,为了简化程序,将重点放在算法本身上,所以很多宏定义都没有使用,如果规范来写,数据结构中的很多类型应该是用typedef重新设置一个新名字,特别是结构体中的数据域。因为代码我最想体现,最希望大家了解到的是算法本身,所以在函数返回值中,返回0代表错误,返回1代表正确,希望大家注意。

 

 

  • 61
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于C语言中的函数返回值枚举,我们可以将返回值的枚举定义在函数外部,然后在函数内部使用该枚举类型作为返回类型。以下是一个示例: ```c typedef enum { SUCCESS, FAILURE, INVALID_INPUT } Status; Status addNumbers(int a, int b) { if (a < 0 || b < 0) { return INVALID_INPUT; } int sum = a + b; if (sum < 0) { return FAILURE; } return SUCCESS; } int main() { int a = 5; int b = 10; Status result = addNumbers(a, b); if (result == SUCCESS) { printf("Addition successful.\n"); } else if (result == FAILURE) { printf("Addition failed.\n"); } else if (result == INVALID_INPUT) { printf("Invalid input.\n"); } return 0; } ``` 在这个示例中,我们定义了一个名为Status的枚举类型,它包了三个可能的返回值:SUCCESS、FAILURE和INVALID_INPUT。函数addNumbers接受两个整数作为参数,并返回一个Status类型的枚举值。在main函数中,我们调用addNumbers函数并根据返回值进行相应的操作。 希望这个示例能对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C/C++函数返回值问题](https://blog.csdn.net/ASJBFJSB/article/details/81416731)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值