C语言中,一个函数最多只能实现一个返回值。
int func (int b)  
{  
   int a=5;  
   if (a>b)  
      return a;  
   else  
      return b;  
  
   return  0;  
}  
而在实际操作过程中,我们需要调用一个函数,实现得出几个不同结果的情况。
(1)函数返回一个数组,然后再解析数组中的每个数值的意思。
(2)指针作为参数,承载所要输出的值。
#include<stdio.h>
#define IN
#define OUT
int volume_func(IN int length,IN int width,IN int heigh,OUT int *area_pr)
{
	*area_pr = 2 * (length*width + width*heigh + heigh*length) ;
	return (length*width*heigh);
}
int main(int argc,char *argv[])
{
	
	int x=2,y=3,z=4 ;
	int area ;
	int volume = volume_func(x,y,z,&area);
	printf("volume:%d,area:%d\n",volume,area);
	
	return 0 ;
}
在这里调用一次函数得到来个值,即area和volume。注意函数中形式。
意外收获:定义宏IN,OUT来说明每个参数是输入参数还是输出参数,形同硬件的应用。
在VC++有许多这种方法的应用:
#include <stdlib.h>
long strtol( const char *start, char **end, int base );
**end是指向指针的指针
功能:函数返回带符号的字符串start所表示的长整型数。参数base代表采用的进制方式。指针end 指向start所表示的整型数之后的部分。如果返回值无法用长整型表示,函数则返回LONG_MAX或LONG_MIN. 错误发生时,返回零。
#include<stdio.h>
#include<stdlib.h>
int main()
{
	char* p = NULL;
	long n3 = strtol("129gg", &p, 8); 	// n3 = 10
	printf("%d\n%s\n",n3,p);
	return 0;
}在这里将“129gg”中数字认为是八进制,则012,十进制输出为10,p指向“9gg”
                  
                  
                  
                  
                            
本文介绍了C语言中如何通过函数实现多个值的返回,包括使用数组和指针的方法,并展示了具体的代码实例。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
                    
              
            
                  
					2617
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
					
					
					


            