c++第二十五天

p129~p131:

1、赋值运算的左侧运算对象必须是一个可修改的左值。

 

2、赋值运算满足右结合律

 

3、赋值运算的结果是它的左侧对象,并且是一个左值

验证:

#include<iostream>
using std::cout;
using std::endl;
int main()
{
    int a, b, c;
    b = 2;
    c = 3;
    (a = b) = c;    // 先计算a = b;返回值为a,再计算a = c;
    cout << a << endl;
    return 0;
}

 

4、赋值运算符的优先级较低,在条件语句中,赋值部分应该加上括号。

 

练习 4.13

#include<iostream>
using std::cout;
using std::endl;
int main()
{
    int i;
    double d;
    d = i = 3.5;
    cout << i << " " << d << endl;
    i = d = 3.5;
    cout << i << " " << d << endl;
    return 0;
}
/* output:
3 3
3 3.5
*/

 

练习 4.14

if (42 = i) // ... 编译不出来

if (i = 42) // ... i的值为42,转换为布尔值1,条件为true

 

练习 4.15

指针类型和算数类型无法相互转化。

 

练习 4.16

修改:

(a) if ((p = getPtr()) != 0)
(b) if (i == 1024)

 

posted @ 2017-03-03 12:43  xkfx  阅读(195)  评论(0编辑  收藏  举报