函数的返回值,输入,输出参数
现在我们再来研究下函数的形参与返回值。我们将函数的声明信息,包括参数、返回值、调用约定(参考7.9一节)等称为函数的签名。
函数将数据处理完毕后的计算结果返回给调用者,可以通过返回值,也可以通过输出参数。
比如计算2个数的加法运算,那么函数的实现如下:
int add1(int x, int y)//将结果以返回值的方式传递给调用者
{
return x+y;
}
void add2(int x, int y, int *sum)//将结果以输出参数的方式
{
*sum=x+y;
return;
}
void add3(int x, int y, int &sum)//将结果以输出参数的方式
{
sum=x+y;
return;
}
上面定义的3个函数,add1将结果以返回值的形式返回给调用者;add2将结果通过第三个参数sum(传指针)的方式返回给调用者,我们把sum叫做输出参数,把x,y叫输入参数;add3通过第三个参数sum(传引用)的方式返回给调用者。
int main(void)
{
int a=10;
int b=15;
int res=0;
printf(“%d+%d=%d\n”,a,b,add1(a,b));
add2(a,b,&res);
printf(“%d+%d=%d\n”,a,b,res);
add3(a,b,res);
printf(“%d+%d=%d\n”,a,b,res);
return 0;
}
main函数的返回值与命令行参数,main函数的定义如下:
int main(int argc,char *argv[])
{
for(int i=0;i<argc;i++)
printf(“%s\n”, argv[i]);
return 0;
}
入口函数main()有2个输入参数,其中argc表示在运行程序的时候传递给程序的参数个数(程序名称算是第一个参数),argv[]是字符指针数组,里面存放这传递给程序的具体参数。当把上面的程序编译之后,加入编译后的名称叫:demo.exe,那么按照如下方式运行程序:
demo.exe p1 p2 p3
那么demo.exe将会获得4个参数,也就是argc为4,argv[0]为”demo.exe”,argv[1]为”p
demo.exe
p1
p2
p3