??????C/C++?У????(lvalue)?????(rvalue)??????漲????(expression)???????C++?б?????????????????????????
????????????????C?????б????????????????????????????????????????????C++???????????????????PS???ж????????鷳??
????????????
????· ?????????????????????????????????????????????????????????????????????????????е?????
????· ??????????????????????????????????????????????ж?????д(???????д)??????
????· ??????????????????????????棬????????????????????á?
????· ???????????????????????????????????????????泣????&a??????????
?????????????
????1??????????????????????????????????????????????????????????????eg:
????num1 = num2 =num3;
????2???????????????????????????????num2??num1???????num2=num3??????????????????????????????????????????
???????????????????????????????????????????????????????????????????eg:
????int a = 10; int *p = &a;
??????????p??????????&a??????????????&a?????????????????泣??????
????3?????y?????????????±???????????????????????????string??vector???±?????????????????????????
????4????????????????????????????????????????????????????????????
????????????
????1??????????????????????????????????????????????????????????????????????????????eg??
char &get_val(string &str?? string::size_type ix )
{
return str[ix];
}
int main()
{
string s("a value");
cout  << s << endl;
get_val(s??0) = 'A'; //get_val??????????????
return 0;
}
??????????get_val??????????????????????????????
????2??????decltype??decltype????????????????????????????decltype?????????????????????????????????????????????????????????????decltype?????????????????????????eg:
????int a = 11;
????int *p = &a;
????decltpye(*p) b = a;
???????????????????????????decltype????????????????????????????eg??
????int a = 11;
????int *p = &a;
????decltype(&p) p2 = &p