...不能把形参的值反向传给实参。这句话的理解,和return的矛盾。_百 ...
发布网友
发布时间:2024-10-10 16:05
我来回答
共5个回答
热心网友
时间:2024-11-05 14:16
楼主理解偏了!
c语言中只能把实参的值传送给形参,不能把形参的值反向传给实参……
这句话,指的是在函数的调用过程中,实参与形参之间,进行的是值传递(这是相对于址传递而言的),在这个过程中,实参将自身的数值传递给形参,形参只是实参的在堆栈中新开辟一个副本,对形参的操作不会影响实参!
这句话与return没有关系的!呵呵,不明白可以追问!
热心网友
时间:2024-11-05 14:16
return不是返回给参数,而是作为整个函数的送返值。例如:
int add(int a, int b) { int c=a+b; return c;} //形参 a,b, 函数 送返 c 的最终值
调用:
int x=2,y=3,z;
z = add(x,y); // x,y是实参,函数送返值 给 z, 小括号里的是参数。z 不叫参数。
printf("%d",z); // 打印出 5
热心网友
时间:2024-11-05 14:20
函数参数的传递有两种方式,一是传值,另一种是传址。传值时,形参是实参的拷贝,且用栈存放这个值(不一定是基础类型变量,事实上构造类型的传值也是如此),被调函数返回后,栈中的值被释放,所以传值是“不能把形参的值反向传给实参”的。
return 语句会返回函数的执行结果,或用于判断真假的整数值,返回值时,也是函数中值的拷贝,是临时的,与是否能改变形参的值没有关系。
热心网友
时间:2024-11-05 14:23
一、c语言中只能把实参的值传送给形参,不能把形参的值反向传给实参。
这句话不知道你从哪里得来的
二、感觉这句话和return语句返回值有点矛盾
return与参数无关,这说明你对函数的理解有问题
函数包括:
返回值类型 函数名(形参)
{
return 返回值
}
返回值与形参是两个不同的内容。
形参,根据其特点,我们又可以定义它们为输入形参、输出形参、或输入输出形参
输出形参,其实就可以将数据带回到实参中去(表面上看是这样)
如:
int max( int a,int b,int *c)
{
if (a==0|| b==0 )
return -1;
if ( c==NULL )
return -1;
if ( a>b ) *c=a;
else *c=b;
return 0;
}
热心网友
时间:2024-11-05 14:21
函数的返回值不是参数啊,所谓行参是函数定义中()里声明的变量,而实参是调用函数时的参数,调用函数在编译的时候编译成两步,1把实参复制给行参(运行栈堆压入),把控制权跳转至函数入口