gpt4 book ai didi

c - 评估赋值语句的返回值

转载 作者:行者123 更新时间:2023-12-02 22:12:28 24 4
gpt4 key购买 nike

我的理解是,在C中对赋值语句进行求值时,赋值的值也会被返回。
但是,当我运行下面的代码时,情况似乎并非如此。当source_next_level(一个GLib队列)为空时,g_queue_pop_head()函数返回NULL,然后赋值给current_q_node。
然而,while 循环条件检查中的 != NULL 比较似乎并未评估此比较,因为即使 current_q_node 为 NULL 也会进入 while 循环。

为什么g_queue_pop_head返回NULL时进入while循环?

while((current_q_node = g_queue_pop_head(source_next_level)) != NULL);
{
if(current_q_node == NULL) puts("It doesn't seem this should ever be printed but it is");
}

最佳答案

while((current_q_node = g_queue_pop_head(source_next_level)) != NULL);
         ^^^

上面有一个额外的;

关于c - 评估赋值语句的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com