c语言值传递和引用传递一样吗,值传递引用传递的区别

1,值传递引用传递的区别值传递传递的是副本,引用传递是引用连接 。
2,谁能说一下C语言参数传值和传引用是什么概念谢谢你好,首先纠正一下你的一个错误,C语言里没有引用的概念 。引用就是一个别名 , 定义一个变量a,再定义一个引用c,即 int &c = a;就是给a变了个别名,实际上是一个实体 。传值就是将变量的值复制一遍,在函数调用栈上使用,还有一个传指针,即传变量地址 , 就是将变量的地址传到函数栈上去 , 这样,函数在栈上执行对该变量的操作都会直接操作到原变量的值 。传引用和传指针都能直接改变原变量的值,而传值不能修改原变量 , 只能修改它们的复制品(即在栈上建立的变量并被赋予了传进来的变量的值);C语言只能“参数传值”,没有“引用传递” 。C++有引用传递 。传值就是传递值,引用传递就是传地址 , 可以形实参数可以同步变化 。你好!传值只是把这个变量的值赋给形参,改变形参的值 , 实参不变 。传引用时改变形参 , 实参也会改变 。希望对你有所帮助,望采纳 。【c语言值传递和引用传递一样吗,值传递引用传递的区别】
3,C语言中的值传参和引用传参分别是指什么在C语言中其实没有引用传参,都是值传参 。即传递的都是实参的副本 。如下示例 , //交换两个参数的值,值传参void swap(int x, int y) int temp = x; x = y; y = temp;}int a = 2, b =1;swap(a,b); //a , b的值不会改变,因为改变的是实参a,b的副本 。另一个示例://所谓的“引用传参”,交换两个数值void swap(int *x, int *y) int temp = *x; *x = *y; *y = tem;}int a =2, b = 1;swap(&a, &b);//a,b的值改变其实这里引用传参 , 传递的也是参数的副本 , 只是这个副本是变量a,b的地址,所以你在函数swap中你并不能通过参数改变变量a,b的地址,因为它只是一个副本,是值传递 。但你得到变量的地址,你就可以访问和改变变量的内容,所以在第二个swap函数中,你可以通过*x和*y来改变实参的值,从而可以达到交换变量a,b值的效果 。但这并不是引用传递 。只是有这样的说法 。推荐你去秒秒学上看看相关的内容,我也是从那上面学来的 。
4,c中值传递和引用传递的相同点#includevoid swap(int &a, int &b); //函数原型的声明 ,这里仅仅是声明,表明有这个函数在其他地方定义过,但是函数的具体代码在其他地方.如果不声明,main函数就找不到swap函数,&表示传递的是变量的地址,这样函数里面修改的变量的值,如果没有&,则函数会生成一个临时变量a1, b1,并将变量a b的值分别copy给他们,这样函数里面修改的就是临时变量 a1 b1 的值, 而不是变量a b 的值,a b的值并没有发生改变. int main(int argc, char* argv[]) int x=8,y=10; cout<<"x="<<<" y="cout<<"x="<<<" y=">x; return 0; } void swap(int &a,int &b) //上面是声明,这里是定义 { int t; t=a; a=b; b=t; } cin>>x; //为什么又要输入x 把什么输入x呢? 这里随便输入什么都可以,程序上下没看出x有啥用 return 0; //这里的表达试为什么是0? 不好意思再加一个问题 ,  swap(x,y);换成swap(y,x); //结果为什么没有变化?这里你的输出结果 应该是交换后的 函数的功能就是交换两个变量的值,x y只是形参,真正调用的时候是实参起作用用一个经典的例子说明一下:1. 值传递void swap(int a,int b) int x = a; a = b; b = x;} void main() int a = 10; int b = 20; swap(a,b); cout< }这里输出是 10 20;说明a和b根本没有发生交换;2.引用传递void swap(int &a,int &b) int x = a; a = b; b = x;} void main() int a = 10; int b = 20; swap(a,b); cout< } 这里输出就是 20 10 可以发现 a,b发生了交换在值传递的情况下 , 函数在被调用时,他的值传递参数都会被复制一份,也就是说被调用函数函数体中所使用的参数是被复制的参数,当调用结束时也就消失了,比如第一个例子中,swap函数中执行的a和b参数都是原参数的副本,操作也是在副本上进行的,随着被调函数结束,副本也就消失了,因此对原参数没有影响 。而引用传递就不同,主函数没有为被调函数的引用传递参数复制副本,因此所有操作都是基于原来的参数,因此在被调函数内对参数进行的操作就是对原参数进行的操作,于是参数被改变了 。这里我们可以发现,值传递需要复制参数,构造参数的副本,因此比较花时间,引用传递则不会 。因此在保证参数不会被改变的情况下,我们喜欢用引用传递提高时间性能 。你说的是值传递 是传地址的意思吗?5,在c语言编程中传值方式和传引用方式之间有什么区别传值方式:当一个函数是传值方式的时候,你调用这个函数的时候传入的实参的值会被拷贝到形参,但是形参与实参之间并没有什么联系,比如变量b=5,a=b;这个时候将b赋值给a,他们的值相等,但是当这以后无论a的值怎么改变都不会影响到b,b=5,a=b;a=1;这时候b依然是5,这就是传值方式#include<stdio.h>void add(int a,int b)a=a+b;//改变了形参a的值return a;}void main()int a=1,b=2;printf("%d\n",add(a,b));//3printf("%d\n",a);//1printf("%d\n",b);//2}传引用方式:当你调用一个函数时,传入的是实参的地址的时候,这时候修改形参 , 实参也会受到影响,不过这种传地址某种意义是传值,首先将实参的地址拷贝到形参,他们两个以后就没有关系了,你也可以改变形参保存的地址,实参的地址不会改变,但是你操作的是形参对应地址的内容,与实参对应地址的内容一致,操作是同一个对象,所以形参对这个地址的操作,在实参那里也会看到效果#include<stdio.h>void add(int *a,int *b)*a=*a+*b;//改变了形参a的值return *a;}void main()int a=1,b=2;printf("%d\n",add(&a,&b));//3printf("%d\n",a);//3printf("%d\n",b);//2}在C语言中,并没有引用的概念,这个是C++的概念 。在C++的函数参数中 , 有两种形式,其中TYPE&var的形式,称为传引用方式;TYPEvar的形式,称为传值 。二者的区别为,当传引用时,实际传到函数中的形参,是实际参数的一个引用,而不是仅传递值到函数中 。具体的表现有以下几条:1传引用时,形参和实参是同一个变量,即使用相同的内存空间,二者有相同的地址 。而传值时二者地址不同;2传引用时,由于没有新建变量,所以对于类对象参数,不会产生构造和析构 。而如果是传值调用,调用时会进行构造,退出函数时会进行析构;3由于传引用使用的是原本实参的地址 , 所以对引用参数值的修改,会在退出函数后体现在主调函数中,而传值调用对参数的修改不会影响到主调函数 。你应该知道什么是引用吧,比如inta=1;int&b=a;这样就是引用,这样也表示a就是b , b就是a 。函数调用传参时,如函数B(intc) , 当调用函数B(a),这样就表示c=a=1;这样只是表示c的值为1 , a只是给它赋值了,它只是等于1,与a没有关系了 。但是如果调用B(int&c);,这样就表示int&c=a=1;这样不仅仅表示c等于1了,因为是传引用,这样C就是a,a就是c,你在函数B里面对c进行任何操作,同时对a也进行了相应的操作 。传值方式:当一个函数是传值方式的时候 , 你调用这个函数的时候传入的实参的值会被拷贝到形参 , 但是形参与实参之间并没有什么联系,比如变量b=5,a=b;这个时候将b赋值给a,他们的值相等,但是当这以后无论a的值怎么改变都不会影响到b,b=5,a=b;a=1;这时候b依然是5 , 这就是传值方式#includevoid add(int a,int b) { a=a+b;//改变了形参a的值 return a; } void main() { int a=1,b=2; printf("%d\n",add(a,b));//3 printf("%d\n",a);//1 printf("%d\n",b);//2 } 传引用方式: 当你调用一个函数时,传入的是实参的地址的时候,这时候修改形参,实参也会受到影响,不过这种传地址某种意义是传值,首先将实参的地址拷贝到形参,他们两个以后就没有关系了,你也可以改变形参保存的地址,实参的地址不会改变,但是你操作的是形参对应地址的内容 , 与实参对应地址的内容一致,操作是同一个对象,所以形参对这个地址的操作,在实参那里也会看到效果 #include void add(int *a,int *b) { *a=*a+*b;//改变了形参a的值 return *a; } void main() { int a=1,b=2; printf("%d\n",add(&a,&b));//3 printf("%d\n",a);//3 printf("%d\n",b);//2 }

    推荐阅读