有关C语言函数值返回的问题

当调用函数的类型为void时 到底什么时候才能返回调用的值呢 有点模糊 做题时总是搞不清 有时答案上又说形参的改变不影响实参的值 有时又说这是传值的过程不是传址 到底该怎么用呢
恳请各位帮忙详细解释一下 谢谢了~

我来帮你详细解释下吧:

形参:即形式参数,指的是函数定义时括号里的参数。如"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个回答  2011-03-23
1. void类型的函数是肯定不会有返回值的,因为void是空类型。凡是函数类型不是void的,都必须返回一个值。
2.传值是指将实参的数值复制给形参,形参、实参各自占用不同的存储单元,所以,形参不影响实参。传址是指将存放实参的内存地址传递给形参,这样形参就是一个指向实参的指针,从而通过改变形参指向的值,便是改变实参的值。
第2个回答  2011-03-23
传参数 用取地址 &,就可以改变了
func(int *aaa)
{
*aaa = 9;
}
main()
{
int bb = 0;

func(&bb);

printf(“%d\n”,bb);
}
func会改变BB的值
第3个回答  2011-03-24
当作函数形参时(如fun(int g)),形参在函数中的任何计算都并未改变实参的值,我们叫做单向传递,实际上,形参在内存中又会分配地址,与实参不同,所以传递只是将值传了过去,当形参改变时只是将形参地址上的数值改变了,并未改动实参地址所指向的数值。而当是作地址传时(如fun(int *g)),将实参地址也传了过去,也就是他们都是指同一个地址,当地址上的值在函数中改变时,他在函数外也改变了,因为都是同一个内存地址上的值,类似于把值传了回去,我们叫做双向传递。

C语言中函数的返回值是什么意思,是返回到哪里去
函数返回值在C语言中指的是函数执行完毕后向调用它的函数提供一个结果。这个返回值可以是任何数据类型,如整型、浮点型、字符型等。函数返回值的用途是将函数执行过程中的计算结果传递给主调用函数或其他函数。这使得主调用函数能够利用这个结果进行后续的处理或操作。函数返回值的获取通常通过return语句实现。

C语言中如何实现函数的返回值是负数?
1,第一步是通过选项(例如\/ FPi87,需要协处理器)编译或链接程序。请注意,该程序在未安装协处理器的计算机上运行。2,然后printf_s或scanf_s函数的格式字符串包含浮点格式规范,然后程序不包含任何浮点值或变量,如下图所示。3,然后,通过加载浮点支持以最小化程序大小来完成编译器。此时,请注意,...

问一下c语言函数返回值的问题?
在被调用函数里,任何合理的表达式都可以作为返回值, 表达式的结果就是返回值。 就这个问题而言, c的内容就是返回值。 他有权返回什么跟调用它的函数里的一切都毫无关系。对调用它的函数而言, 相当于在调用的位置写一个常量,这个常量的值就是那个函数的返回值。

c语言返回值返回到哪里
C语言中的函数返回值其实存储在一种特殊位置,称为返回值寄存器。这个寄存器是CPU内部的硬件结构,专门用于存放函数调用的结果。寄存器的位置和大小因处理器的不同而异,通常不在直接可访问的内存区域。当函数需要返回一个值,程序员在函数内部使用return语句完成这一操作。此时,函数的结果会复制到返回值寄...

c语言中,函数返回值怎么用?
return后接一个值。\\r\\n在调用这个函数的函数里面,调用它的时候希望获得一个值,如果不希望获得这个值的时候,用void声明就好。如果需要,比如说需要得到一个整形值\\r\\n就声明\\r\\nint func()\\r\\n在调用它的比如main里面\\r\\nfunc()的作用就可以相当于一个int型常数\\r\\n比如外面定义了\\r\\nint ...

C语言如何让一个函数返回多个值
在C语言中,一般情况下函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值,下面我们就来看看C语言怎么让一个函数返回多个值!1、全局变量传递 这种方式算是最不科学的规范,打破了软件开发需要的闭环策略,但在基本语法上是支持的,C语言里面最好少涉猎全局变量...

c语言中,有返回值的用int,没有返回值的用什么?
在c语言中,有返回值的就用int,没有返回值就用void。在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。即不加返回值说明的函数为返回为int的函数。如果函数没有返回值,一定要声明为void类型。这既是程序良好可读性的需要,也是编程规范性的要求。另外,加上void类型声明后,...

C语言中关于“返回值”的问题。知道
一般来说,返回值是针对于一个函数来说的,对于某一天语句不说返回值。返回值可以是定义过的任意类型,可以是空,int,char,char ,string,还可以是自定义的结构等等。你需要什么值就可以返回什么值。如:void test1(){ return;\/\/ 返回空 } int test2(int a,int b){ int c = a + b;return ...

请详细解释有关C语言函数返回值的调用问题,题目如下
选C。因为sub的返回值为void,也就是说它没有返回值,所以B就错了;sub()的参数类型为char(字符类型)和float(浮点型),而A里面的“abc”是字符串形式,所以A错了;D中的第一个 参数为32,它根本不是char型的,估计这种形式,系统只能把它当作int型来处理,而第二个参数也不是浮点型的数据...

c语言函数返回值问题~!求教
return a \/\/a=6 返会给factorial(4-1) a*=6 return a \/\/a=24 返会给factorial(5-1) a*=24 return a;\/\/a=120 返回给main中的 factorial(5)如果a=1时,返回0,之后所有的a*=0 结果就为0了 如果返回的是2 a*=2 就会是2倍了 ...

相似回答
大家正在搜