CSAPP-3e-Solutions icon indicating copy to clipboard operation
CSAPP-3e-Solutions copied to clipboard

chapter3/code/3.70.c 答案表述错误了。

Open aQuaYi opened this issue 7 years ago • 2 comments

*( *(up->e2.next).e1.p )*(up->e2.next).e1.y 的表达式写错了。

因为 . 的优先级比 * 的高,所以以上写法相当于是 **p*y。即,把整型当做地址来获取值。

正确的写法是 *((*up->e2.next).e1.p)(*up->e2.next).e1.y,因为 -> 的优先级比 * 高。

还有一种更直观的写法 *(up->e2.next->e1.p)up->e2.next->e1.y,因为 ->. 的优先级一样。

void proc(union ele *up)
{
    up->e2.x = *(up->e2.next->e1.p) - up->e2.next->e1.y;
}

aQuaYi avatar Aug 09 '18 07:08 aQuaYi

yeah, i think so

AndyCorona avatar Jan 04 '22 14:01 AndyCorona