C++输入型参数和输出型参数(2.24)

来源于:https://zhuanlan.zhihu.com/p/165612703
一、为什么做这种区分?
这里的参数指的是形参列表里面的参数。外部调用函数的时候通过形参列表把参数传给函数,函数再通过返回值拿到想要的结果。
但是当一个函数想要再内部处理多个数据并返回多个数据时,仅仅一个返回值就不够用了。那么此时返回值大多只有检验程序是否正常执行的作用,比如main函数的 return 0;
这时函数的输入(给函数本身的)输出(需要返回给使用者的)就都要靠参数来完成了。输出型参数就是让函数内部把数据输出到函数外部的。

     #include<iostream>

using namespace std;

int add_3(size_t num1, size_t *num2) {

	int temp = num1 + 3;
	if (temp >= 3) {
		//num2作为输出参数,num1是输入参数
		*num2 = temp;
		return 0;
	}
	else {
		return -1;
	}
}
int main() {
	size_t a = 0, b = 0;
	int c = add_3(a, &b);
	if (c == 0) {
		cout<<"成功相加"<<endl;
	}
	else if (c == -1) {
		cout << "出错了" << endl;
	}
	cout << "a+3的结果是" << b << endl;
	return 0;
}

二、怎么区分形参列表里面是输入型参数还是输出型参数?·
形参列表里面普通变量一定为输入型参数,普通变量传递向函数外部的方式只有两种:

  1. 全局变量,但是全局变量风险太大而且会对代码的可读性造成影响,所以一般不用。
  2. 返回值,只能返回一个,可以直接把普通变量传递出去。但是外部需要用新开的空间来接。

形参列表里面的指针型变量需要分开来看:
**1.作为输入:**作为输入的指针型变量在函数内部是不会进行修改的,所以一般加const
2.作为输出:通常这个形参是指针型且没有加const,代表外部需要函数处理这个指针所指的变量

char *strcpy(char *desc , const char *src);
//表示将源文件(src指向的文件)拷贝到目标地址(desc指向的文件)

另注:const char *src不是说src指针本身不可变,而是说src所指向的元素是不可变的。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值