单向传值调用指的是 函数的传值调用是指什么
比如说下面: void fun(int _a) { _a = 3; } void main() { int a = 0; fun(a); } 在主函数中调用 fun()时将a传给fun(), 这个过程中编译器会生成一个临时变量_a, 然后将a的值赋给_a,(这个赋值是单向的, 就是a->_a) 之后执行函数fun(),在函数内部使用的都是a的一份拷贝_a, 函数fun()退出后_a自动释放.
谁给形象地解释一下什么是单向值传递方式其实就是值传递的问题,实参传给形参,形参在函数里面值无论怎么变化都不会影响实参,(形参和实参明白吧!)也就是说这个过程是单向的,没有返回.另外两种传递方式(指针和引用传递)这个是引起实参的变化的.
什么是单向传输?单向传输 是指只往一个方向进行数据传输.例如A->B,或B->A,而双向传输,则可以AB相互发送及接收.单向传输有时也可称为单工模式.同理,双向传输,有时也可称作为双工模式.
C语言函数调用问题中的单向传输#include<stdio.h> void fun(int *a, int *b) { int t; t=a;a=b;b=t; } main() { int c[10]={1,2,3,4,5,6,7,8,9,0},i; for(i=0;i<10;i+=2) fun(&c[i],&c[i+1]); for(i=0;i<10;i++) printf("%d,",c[i]); printf("\n"); } 改成这样 就行了
什么是传值调用,如何判断?传值会为实参在栈中做一副本,函数只能改变栈中副本的值,而不会改变实参的值. 传引用是把实参的指针传递给函数,不用做副本,对引用的修改就是对原值进行修改.所以效率较高.
C语言中的传值调用时什么意思呀?比如说,你写了个函数void swap(int a,int b)用于将2个整形变量互换.现在你在主函数中定义整形变量x和y, 然后你想要通过这个函数将x和y的值进行互换,就调用了swap(x,y).这里注意了,这里只是将x和y的值付给了a和b,然后将a和b的值互换,实际上x和y的值并没有互换.这就是传值调用将值放在临时变量的意义.
函数调用中发生的数据传送是单向的是什么意思比如:定义一个函数:void f(int a ) { a = 1111; // (2) 把a 变为了 1111 } 在main函数中 int main() { int a = 10; f(a); // (1)a = 10 ; // 此时 a 还是 = 10 // 函数f对a的修改没有传递回来 }
C++中的传值调用、传址调用、和引用调用传值调用 只把 变量的值 传入函数,在函数中修改后,在主函数中值还是不变,相当于函数只是复制了变量的副本,不会改变原来的值.传址调用 把变量在内存中的地址 传给函数(有地址信息可以轻易得出给地址上的值),这样在函数中修改地址上的值,会使主函数中的值也跟着改变,因为改变的是该地址上的值,而主函数也是通过地址访问的.所以更改之后,主函数的值跟着变.引用调用,也能改变主函数的的值,其做法也是获得该变量所在内存中的地址.
传值调用与传地址调用有什么区别,怎么理解?传值和传地址的概念主要在于内存指针上.但换种方法更容易理解. 传值:将传递的形参变量在内存中做一个拷贝,然后传递给函数,所以不管在函数中怎么变化都不会改变原来的内容. 传地址(传指针):将形参变量在内存中的地址告诉函数,所以在函数中的变化将影响原来的内容
关于单向值传递不违背单项值传递的原理.string s[]传的数组实质上是指针,函数内的操作是对指针指向的内容的操作.