奇怪的 while 循环与分配操作C++
Weird while loop with an assignment operation C++
我在leetcode解决方案中看到过以下代码片段。它计算链表中元素的数量。while 语句只有一个赋值操作。谁能解释一下这是如何工作的。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
struct ListNode * temp = head;
int num = 1;
while(temp = temp->next){
num++;
}
temp->next
的值分配给temp
- 评估
while(temp)
(如temp != NULL
( - 在执行循环体的情况下
注意:如果head
为 NULL,您的程序将面临运行时错误
相关文章:
- 使用操作重载对象重新分配对象
- 在可拆卸线程完成操作时取消分配内存
- 奇怪的 while 循环与分配操作C++
- 操作后通过运算符分配对象
- 我的移动分配操作程序重载的分段错误
- 为什么在 C++ 执行删除操作后仍可以访问释放的动态分配的内存
- 如何在声明期间将操作分配给复数
- 为什么在执行增量操作之前分配指针值
- 是``if`语句''在modulo之前和分配操作之前的冗余
- 特征库,简单的线性代数操作,具有稀疏的矩阵,增加了其分配的尺寸
- Valarray 就地操作作为临时分配给出不同的结果
- 成员初始化器列表中的分配操作
- 此副本分配操作安全吗?
- 此对象创建期间发生哪些复制/分配操作
- 重载分配操作/流
- 我可以在两个istream_iterators之间执行分配操作吗?
- 在单个语句中将类类型分配给该类的取消引用指针时执行哪些操作
- c++ 的默认分配操作行为是什么?
- 为什么检查分配操作的结果有效,但不能与其他条件相结合
- 是否有一个std模板类用于管理带有指针的对象并提供复制/移动/分配操作