⑴ 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;