C:传递(双重)作业

Mic*_*bro 3 c variable-assignment assignment-operator

我在C中使用了这样的构造:

list->head = list->tail = NULL;
Run Code Online (Sandbox Code Playgroud)

现在我考虑这是否真的意味着我想的.

这是什么意思?

  1. list->head = NULL; list->tail = NULL;

要么

  1. list->head = list->tail; list->tail = NULL;

thx澄清

250*_*501 5

这些都不正确.

由于简单赋值=运算符是从右到左的关联,因此您的表达式与以下内容相同:

list->head = (list->tail = NULL);
Run Code Online (Sandbox Code Playgroud)

将NULL分配给tail,然后将tail(具有空指针的值)分配给head.