形参中&和*的区别
答案:6 悬赏:0 手机版
解决时间 2021-11-16 06:26
- 提问者网友:伴风望海
- 2021-11-16 01:21
形参中&和*的区别
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-11-16 02:56
看看这个说法对不对:
如果是定义的形参,那么*前面应该加上类型名,因为C++是强类型语言。
而p就是形参的参数名。
而&q这种格式比较明显的看出这是一个实参,因为&的左边没有类型说明符,表示这个函数在声明(定义原型)的时候已经确定了这第二个参数的类型。
如果以int为例,那么这个函数原型可以这么写:
void fun(int * p,int &q);
其中,p和q都没有任何的意义。
改进意见:
可以写成模板:
template
void fun(T *,T &);
这样的声明就可以很好的区别出*和&了
如果是*则表示这个函数的第一个参数是一个“指针”,这个指针是一个int本身类型的指针,原则上应该指向句柄类型为int的句柄。(这段话太准确了一点,注意理解指针类型和指针指向类型的区别)
如果是&则表示第二个参数是一个引用。如果说A引用B,就是说A把B这个实体都全部拿了过来,而不是只拿了一个写了B名字的纸条啊什么的。这里的引用表示这个函数将把传到第二个参数位置的这个对象(或者说变量)完全收到函数内进行处理,也就是说这个函数对于第二个参数(实例句柄)的处理是完全在这个参数的本身身体上进行的。
——————————————————————
bigglave,jdzfjfhnui都说到了很正确的一部分
w_7849516230说得不很自信,而且不很清楚,只需要稍加改进,就可以完全正确了。
&这个符号在执行语句中是取地址符;在定义变量(包括声明形参)的时候我们对他的理解就应该是:一个T类型的变量句柄的引用(实体)。
如果是定义的形参,那么*前面应该加上类型名,因为C++是强类型语言。
而p就是形参的参数名。
而&q这种格式比较明显的看出这是一个实参,因为&的左边没有类型说明符,表示这个函数在声明(定义原型)的时候已经确定了这第二个参数的类型。
如果以int为例,那么这个函数原型可以这么写:
void fun(int * p,int &q);
其中,p和q都没有任何的意义。
改进意见:
可以写成模板:
template
void fun(T *,T &);
这样的声明就可以很好的区别出*和&了
如果是*则表示这个函数的第一个参数是一个“指针”,这个指针是一个int本身类型的指针,原则上应该指向句柄类型为int的句柄。(这段话太准确了一点,注意理解指针类型和指针指向类型的区别)
如果是&则表示第二个参数是一个引用。如果说A引用B,就是说A把B这个实体都全部拿了过来,而不是只拿了一个写了B名字的纸条啊什么的。这里的引用表示这个函数将把传到第二个参数位置的这个对象(或者说变量)完全收到函数内进行处理,也就是说这个函数对于第二个参数(实例句柄)的处理是完全在这个参数的本身身体上进行的。
——————————————————————
bigglave,jdzfjfhnui都说到了很正确的一部分
w_7849516230说得不很自信,而且不很清楚,只需要稍加改进,就可以完全正确了。
&这个符号在执行语句中是取地址符;在定义变量(包括声明形参)的时候我们对他的理解就应该是:一个T类型的变量句柄的引用(实体)。
全部回答
- 1楼网友:底特律间谍
- 2021-11-16 06:58
*P,实际是一个内存单元的地址
&q,实际是地址为q的内存单元里的值
&q,实际是地址为q的内存单元里的值
- 2楼网友:洒脱疯子
- 2021-11-16 06:18
*p 指的试p里含的值的“地址” &q 指的是q(这里q里含的是个地址)地址处所含的值。 一个是值 一个试地址。
- 3楼网友:白昼之月
- 2021-11-16 05:18
指针传递的是地址
引用传递的是同一个变量的另一个名字,公用同一个内存单元
相比引用更直接易用
引用传递的是同一个变量的另一个名字,公用同一个内存单元
相比引用更直接易用
- 4楼网友:白昼之月
- 2021-11-16 04:10
*p这个是指针变量,传的时候是相当于赋值比如有个*str=*p,那么str的这个指针里面存的是和p指针里存的是一样的地址值,但是是两个不同的地址空间!还有另一个值,是他们地址所指向的地方
&q直接传的是地址!还是*str=&q这个意思就是直接把地址赋值过去了!指针存的是p的地址了,总共只有两个地址空间!
&这个是取地址符么!
&q直接传的是地址!还是*str=&q这个意思就是直接把地址赋值过去了!指针存的是p的地址了,总共只有两个地址空间!
&这个是取地址符么!
- 5楼网友:青尢
- 2021-11-16 03:18
void fun(*p,&q)
指针的形参,实参 传地址 &a
引用的形参 ,实参传本身 a
指针的形参,实参 传地址 &a
引用的形参 ,实参传本身 a
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯