首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

哪些表达式回到的是左值

2013-07-08 
哪些表达式返回的是左值?void f( int x, int y ){int j x yint* p &++xint* q &( x++ ) //这个

哪些表达式返回的是左值?

void f( int x, int y )
{
    int j = x = y;
    int* p = &++x;
    int* q = &( x++ ); //这个是错的。
    int* pp = &( x>y ? x : y );
}
错的那个x++返回的是什么?返回的是右值?

在哪能查到表达式的返回值是左值还是右值?还是应该说运算符的返回值是左值还是右值?
[解决办法]
引用:
Quote: 引用:

http://www.oschina.net/question/234345_52587

用&试也太累了吧?没有什么直接就能看出来的方法么?


看标准文档最直接,在Expression中讲得很清楚。
要试验的话,用内建操作符&是最合适了。

C++0x里可以写两个重载的函数模板,一个参数是左值引用,一个参数是右值引用,然后用表达式作为参数去调用……好像比用&还麻烦。

热点排行