通常我们都会遇到会要求我们利用相关步骤进行运算,并且其结果可能涉及到多个值,此时,利用函数较为方便,但是对于C语言来说,要求单一出口原则,只能返回一个值,这时就无法实现。

通常我们可以通过如下方法进行多个值的返回

1.建立数组,并将数组作为参数传入函数中,注:传入函数时无法使用sizeof(A)/sizeof(A0)来获得数组的个数具体可看:数组名作为函数参数以及sizeof用法_小时候挺菜的博客-CSDN博客

 主要的意思是说,将数组作为参数传入函数之后,其(A这个符号就不在代表A这个数组,跳出该函数之后还是可以作为就变成了指向第一个位置A[0]的指针,通过sizeof(A)得到的不在是数组A的大小,而是指向第一个位置的指针的大小。因此想要得到数组的长度,必须要单独传入一个单独的参数代表长度如:LEN。

2.通过单一的指针,当我们需要得到的返回值在2个或几个,无法通过函数单一的返回时,除了通过数组进行赋值之外,我们还可以直接将对应的值定义之后,在对其进行指针的定义然后将指针传入,利用指针对该值进行修改。

int divide(int a,int b,int *result){//此处int *result要求传入一个int型指针,在调用时传入对应的地址就可
	int ret=1;
	if(b==0) ret=0;
	else{
		*result=a/b;
	}
	return ret;
} 

3.通过结构体的指针进行运算,这种方法适合于要赋值的对象有多个属性/值,又有多个对象,我们就可以建立一个结构体,然后通过结构体的指针来实现。然后在函数中对结构体成员进行赋值就可实现。

更多推荐

C语言 函数返回多个值方法