我听不懂你在说什么呀!
要不,我自说自话,看看能不能碰巧回答你的问题
程序代码:
#include <stdio.h>
double fun( double a, double b )
{
return a + b;
}
int main( void )
{
double result = fun( 1.1, 20.0 );
printf( "%5.2f\n", result );
}
这就是一个正统的,通过返回值带回结果的例子。
对于上面的代码,如果不通过返回值来返回,而是通过参数来返回的话,你得将一个接受结果的地址给函数,让函数把结果填写到其上
程序代码:
#include <stdio.h>
void fun( double a, double b, double* p )
{
*p = a + b;
}
int main( void )
{
double result;
fun( 1.1, 20.0, &result );
printf( "%5.2f\n", result );
}
如果是想将结果存在一段内存中,然后返回这段内存的地址,那么就是
程序代码:
#include <stdio.h>
#include <stdlib.h>
double* fun( double a, double b )
{
double* p = malloc( sizeof(double) );
*p = a + b;
return p;
}
int main( void )
{
double* p = fun( 1.1, 20.0 );
printf( "%5.2f\n", *p );
free( p );
}
对于上面的代码,如果不通过返回值来返回,而是通过参数来返回的话,你得将一个接受结果的地址给函数,让函数把结果填写到其上
程序代码:
#include <stdio.h>
#include <stdlib.h>
void fun( double a, double b, double** pp )
{
*pp = malloc( sizeof(double) );
**pp = a + b;
}
int main( void )
{
double* p;
fun( 1.1, 20.0, &p );
printf( "%5.2f\n", *p );
free( p );
}