按值传递,地址传递与引用传递各有什么标识?按值传递不能改变形参的值,这种传递有什么用?
答案:5 悬赏:20 手机版
解决时间 2021-04-11 18:44
- 提问者网友:不爱我么
- 2021-04-10 18:04
按值传递,地址传递与引用传递各有什么标识?按值传递不能改变形参的值,这种传递有什么用?
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-04-10 19:11
形参传递又不是用来改变形参的值,而是函数中要用到形参的值。
例如:
int subtract(int a,int b)
{
return a-b;
}
这个函数的目的并不是用来改变形参a和b的值,而是用a和b求a-b的值。
另外,除了int function (int *a, int *b);,int function(int a[],int b[]);也是地址传递
全部回答
- 1楼网友:轻雾山林
- 2021-04-10 22:26
在调用函数的时候有两种传实参的方式,一种是传某一个变量的具体值(就是所说的传值),另一种是传某一个变量的地址,如果是值传递,就是给函数的形参赋一个值,这个时候形参和实参会有各自的内存,你在子函数里对形参值的改变将不会影响原调函数中的实参值,因为他们占用的是不同的内存地址,但是如果你传的是一个地址的话(实参:在变量前加去地址运算符&,或是数组名,或是一个指针。形参此时也要是一个能接受地址的变量,且数据类型要相同),形参和实参共用一个内存空间(即实参的内存空间),你在子函数中做的操作其实就是对原实参做操作,这就会影响原掉函数的实参值。若还有疑问加Q635844619可以交流
- 2楼网友:爱难随人意
- 2021-04-10 22:03
按值传递 Byval,地址传递BYref
- 3楼网友:英雄的欲望
- 2021-04-10 20:46
值传递 如int function(Int a,intb );
地址传递 如int function (int *a, int *p) ;
引用传递 如int function(int &a,int&b); 但是你说错了。是传值不能改变实参的值,形参的值可以改变。 值传递用在不需要改变实参的情况下的参数传递。
- 4楼网友:封刀令
- 2021-04-10 19:41
参数的传递分为:1.值方式参数传递,2.引用方式参数传递。
对参数的影响: 2种数据类型:值类型+引用类型 2种传参方式:值传参+引用传参(ref关键字);
以上的四种参数的组合 除了值传参方式传递值类型数据,其他的组合方式对参数的操作都会影响参数,都会改变!
值类型:简单类型(int,float,double,long,char,bool)+结构+枚举 存储结构:数据存放在栈中(栈:先进后出;单入口,单出口);效率高 赋值方式:传的是值 引用类型:除去简单类型(int,float,double)+结构+枚举以外的类型都是引用数据类型。如string;object;类;数组;委托;接口... 存储结构:栈中存地址;堆中放数据; 赋值方式:传的是数据的地址。
如有什么不懂,请加我QQ,QQ:137313826
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯