⑴ C语言连续赋值问题
那个,单刀直入谈问题吧。
首先我们应该知道,成员运算符 -> 优先级远高于 = 。
因此,源语句等价于
(head->next)=(head->prior)=NULL;//推荐网络“C语言运算符优先级”
我们还应该知道,“=”运算符具有结合性,由右向左。
因此,源语句等价于
(head->next)=((head->prior)=NULL);//推荐网络“C语言赋值运算符结合性”
这时候就可以逐部分分析了:
首先执行(head->prior) = NULL, 将 NULL 赋值给head->prior (清空head->prior)。
紧随其后,该语句返回一个值 NULL(赋值语句返回值为被赋的值)。
这时候,执行(head->next) = NULL 。
也就等价于
head->next=NULL;
head->prior=NULL;