有关C语言函数值返回的问题
当调用函数的类型为void时到底什么时候才能返回调用的值呢有点模糊做题时总是搞不清有时答案上又说形参的改变不影响实参的值有时又说这是传值的过程不是传址到底该怎么用呢恳请各...
当调用函数的类型为void时 到底什么时候才能返回调用的值呢 有点模糊 做题时总是搞不清 有时答案上又说形参的改变不影响实参的值 有时又说这是传值的过程不是传址 到底该怎么用呢
恳请各位帮忙详细解释一下 谢谢了~ 展开
恳请各位帮忙详细解释一下 谢谢了~ 展开
4个回答
展开全部
我来帮你详细解释下吧:
形参:即形式参数,指的是函数定义时察腊括号里的参数。如"void fun(int n){printf("%d"陪猜,n);}"这里的n为形参;
实参:即实际参数,指的是调用函数时括号里的参数。如调用上面的函数语句"int n=99;fun(n);"这里的n为实参;
(上面两点楼主一定要清楚,不然下面的你该看不懂了~)
传值:只是单纯将实参的值赋值给形参,不败乱滑改变实参的值。就如"a=b”,b赋值给a,当然不改变b的值;
传址:将实参存放的地址赋值给形参,这样,在函数里访问形参即相当于访问实参,所以会改变实参的值。就如"scanf("%d",&a)“中,a是个实参,把a的地址"&a"传递到scanf函数中,函数调用完毕后,会改变a的值;
返回值:如果返回类型为void,则函数无返回值,但在函数中可通过"return;"语句来结束函数运行。如若返回类型省略不写,则编译器默认返回类型为int型;
哪里不懂可追问:
形参:即形式参数,指的是函数定义时察腊括号里的参数。如"void fun(int n){printf("%d"陪猜,n);}"这里的n为形参;
实参:即实际参数,指的是调用函数时括号里的参数。如调用上面的函数语句"int n=99;fun(n);"这里的n为实参;
(上面两点楼主一定要清楚,不然下面的你该看不懂了~)
传值:只是单纯将实参的值赋值给形参,不败乱滑改变实参的值。就如"a=b”,b赋值给a,当然不改变b的值;
传址:将实参存放的地址赋值给形参,这样,在函数里访问形参即相当于访问实参,所以会改变实参的值。就如"scanf("%d",&a)“中,a是个实参,把a的地址"&a"传递到scanf函数中,函数调用完毕后,会改变a的值;
返回值:如果返回类型为void,则函数无返回值,但在函数中可通过"return;"语句来结束函数运行。如若返回类型省略不写,则编译器默认返回类型为int型;
哪里不懂可追问:
展开全部
1. void类型的函数是肯定不会有返回值的,因为void是空类型。凡是函数类型不是void的,都必须团纤返回一个值。
2.传值是指游野将实参的数值复制给形参,形参、实参各自占用不同的存储单元,所以,形参不影响实参。传址是指将存放实参的内存地址传递给形参,这样形参就是一个指向实参的指针,从而通过改变形参神或喊指向的值,便是改变实参的值。
2.传值是指游野将实参的数值复制给形参,形参、实参各自占用不同的存储单元,所以,形参不影响实参。传址是指将存放实参的内存地址传递给形参,这样形参就是一个指向实参的指针,从而通过改变形参神或喊指向的值,便是改变实参的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传参数 用取地址尘腔衡 &,就可以改变圆绝了
func(int *aaa)
{
*aaa = 9;
}
main()
{
int bb = 0;派做
func(&bb);
printf(“%d\n”,bb);
}
func会改变BB的值
func(int *aaa)
{
*aaa = 9;
}
main()
{
int bb = 0;派做
func(&bb);
printf(“%d\n”,bb);
}
func会改变BB的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当作态配函数形参时(如fun(int g)),形参在函数中的任何计算都枯闭陵并未改变实参的值,我们叫做单向传递,实际上,形参在内存中又会分配地址,与实参不同,所以传递只是将值传了过去,当形参改变时只是将形参地址上的数值改变了,并未改动实参地址所指向的数值。而当是作地址传时(如fun(int *g)),将实参地址也传了过去,也就是他们都是指同一个地址,当地址上的值在函数中改变时,他在函数外也改变了,因为都是没戚同一个内存地址上的值,类似于把值传了回去,我们叫做双向传递。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询