永发信息网

C++指针引用问题,非常量引用的初始值必须为左值

答案:1  悬赏:60  手机版
解决时间 2021-03-06 19:35
C++指针引用问题,非常量引用的初始值必须为左值
最佳答案
“非常量引用的初始值必须为左值”,左值基本上可以理解为能对其取地址的值,如果地址都没有,怎么可能作为非常量引用的值呢?如果可以,那么将出现以下情况:
int &a = 5;//5是右值,a是非常量引用
a = 6;//把5这个右值的值改为6,这明显是不合适的

“在参数里取地址再传进去就允许”这个不是很明白你想表达什么,对右值取地址?追问其实是忘记传问题的图片了。。现在弄明白了。有这样一句话,非常量左值引用只能绑定到非常量左值,不能绑定到常量左值、非常量右值和常量右值,那对于func函数来说,func(&a)里面的&a应该算是非常量左值,还是常量右值?所以才不给引用绑定的追答&a是一个右值,你能对&a再取地址吗?肯定是不能的。&a本身就是一个数值,和5、6这些是一样的数值,只不过这个数值是一个地址值而不是一个int值。

int *c = &a;则完全不同了,c本身是一个左值,c是一个变量,c变量存放了&a所代表的值(就好比int a = 5,a存放了5代表的值),c本身也有自己的地址,你可以再对c作取地址操作。追问嗯嗯,这个我明白了,以前我以为&a还有地址的。。那在func(&a)里面,&a是一个非常量左值还是常量右值呢?追答&a是右值,在哪里都是。

右值有常量非常量一说吗?在C++11标准中应该是有的,但是好像和这里的讨论没关系。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
昨天晚上梦见我的女儿变成一个傻瓜是什么意思
我孩子三个月,如果离婚了我不想要孩子可以吗
我想去广州做服装,我什么都不懂,想从最底层
赤峰第一酒厂出的向阳牌陈曲93年55度酒多少钱
英语翻译성격도 모&
有体,无的成语是什么? 体~无~
勾刀削面在哪里啊,我有事要去这个地方
上冰雪活动的益处
叔叔家的儿子叫我什么
舟山高层住宅楼救护电梯从何时要求必装,如开
联想Z560可以换显卡吗
qq来电中的友谊的小船笛子吹的是什么歌名
环峰镇张公龙田希望小学怎么去啊,有知道地址
孕期多喝水有什么好处
怎么才能和自己喜欢的明星成为朋友?
推荐资讯
江南私厨我想知道这个在什么地方
vivo是音乐手机吗?
男友说我对你没有爱只有责任,这代表他怎么想
夏天避暑最好的地方
如果你和你男朋友晚上电话聊天,然后还没到十
女1983年阳7月28日早上6.30左右出生的命好不
上海兵役登记表中“就学情况”、“所在学校”
【希望之屋】一代枭雄中何辅堂关希望之屋是什
account of 是什么意思?local women's
汉口码头金水渔家在什么地方啊,我要过去处理
l米4分米5厘米等于多少米,过程
销量低迷 标致新推5008又有怎样表现
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?