24小时热门版块排行榜    

查看: 1053  |  回复: 5

accdyy

银虫 (小有名气)

[求助] C++函数变量有取址符与没取址符有什么区别?

C++函数变量有取址符与没取址符有什么区别?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lixy1217

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
没有专门学过,可是根据实践经验,函数变量用了取址符可以在调用函数时可以对变量改变,而没有加取址符则不能改变,我猜可能是加了取址符后此变量没有额外申请内存,与原函数中的变量同用地址。
可有时候,一些C语言中基本变量,如int,double等等作为函数变量加上取址符后会出现一些偶没找到原因的错误。
一般来说类名作为函数变量时都会加取址符,这样就不会执行构造函数和析构函数。

以上只是经验之谈,坐等真相帝解答~~

» 本帖已获得的红花(最新10朵)

偶尔敞开心扉,世界将不再孤独
2楼2012-12-02 16:42:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ioadong

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
accdyy: 金币+5, ★★★很有帮助, 好吧 2012-12-03 09:51:09
请看教材中的“变量的引用”相关内容。
以科学的理性代替天然的非理性。
3楼2012-12-02 20:17:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

accdyy

银虫 (小有名气)

送鲜花一朵
引用回帖:
2楼: Originally posted by lixy1217 at 2012-12-02 16:42:35
没有专门学过,可是根据实践经验,函数变量用了取址符可以在调用函数时可以对变量改变,而没有加取址符则不能改变,我猜可能是加了取址符后此变量没有额外申请内存,与原函数中的变量同用地址。
可有时候,一些C语 ...

你说的很对。下面是我从书上抄来的:
函数参数调用有值调用和引用调用。
值调用是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参,这一过程是参数值的单向传递过程,一旦形参获得了值便与形参脱离了关系,此后无论形参发生了怎样改变,都不会影响到实参。
引用作为形参时直接改变的是同一地址中的数据,所以能达到形实结合,对形参的任何操作都会直接作用于形参。
4楼2012-12-03 09:32:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

如果要类比,可与c函数中的指针参数类似,通过使用引用参数,可以实现函数中修改变量值的效果
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼2012-12-03 17:57:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728079912

铜虫 (初入文坛)

引用变量,可以理解为这个地方用了指针 直接对原变量进行修改
6楼2012-12-04 09:16:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 accdyy 的主题更新
信息提示
请填处理意见