您的位置:首页 > 编程语言 > C语言/C++

C++Primer第五版 4.4节练习

2015-09-14 16:48 399 查看
练习4.13:在下列语句中,当赋值完成后i和d的值分别是多少?

int i; double d;

(a). d = i = 3.5;

(b) i = d = 3.5;

答: a. i = 3, d =3.0

b. d =3.5 I =3

练习4.14:执行下述if语句后将发生什么情况?

If (42 = i) // …//编译器报错,i是一个变量 ,42是一个常量,将变量赋值给常量,编译器报//错

If( i = 42)//… //括号里面 赋值后 i为42 不为0,条件为真,因此 语句继续执行

练习4.15:下面的赋值是非法的,为什么?应该如何修改?

double dval; int ival; int *pi;

dval = ival = pi = 0;

答:涉及到指针,ival = pi = 0,错误,pi是一个指针,类型是int *,ival是一个int型,因此不能赋值,修改方式是,首先指针需要被合理初始化,例如 int j = 1;int *pi = &j; deval = ival = *pi =0;

练习4.16:尽管下面的语句合法,但它们实际执行的行为可能和预期并不一样,为什么?应该如何修改?

(a) if (p = getPtr() != 0)

(b) if (i = 1024)

答:a里面赋值运算符的优先级相对较低 ,更好写法 if ((p = getPtr()) != 0)

b if (i == 1024)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: