在其他帖子中,我遇到了
(5.2.9/8)类型"指向类型为cv1 T的D成员的指针"的右值可以转换为类型为"指向cv2 T类型的B成员的指针"的右值,其中B是基类(子句) D)的10)
请注意语言标准.所以我的问题,
int i = 0;
int *p = &i;
*p = 1;
Run Code Online (Sandbox Code Playgroud)
在所有情况下指针都是左值?什么时候被视为右值?
Dav*_*rtz 15
指针不是可以是右值或左值的东西.指针是一种类型.唯一可以是右值或左值的是表达式.
考虑这个类似的问题:"整数是左值还是右值".嗯,都不是."3"是整数和右值."3 = I;" 是非法的.但是"我= 3;" 如果'i'是整数,则是合法的.所以'i'是一个整数和一个左值.'3'是整数和右值.