c - 双重赋值/if 谓词是否可能? C

标签 c

你能告诉我下一个代码是否可以工作,它的含义是什么?我说的是这条线:if((a=b=c)) st - 已定义的结构。

st* a;
st* b;
st* c;
. // build the struct c correctly with malloc etc
.
.
if((a=b=c)) - the line

是否存在将结构 c 双重赋值给 a 和 b(浅拷贝?)

谢谢

最佳答案

b=c 返回 b 的值(在 c 赋值后),该值赋给 a。它们是指针,因此它只复制 4 或 8 个字节,而不是结构。

关于c - 双重赋值/if 谓词是否可能? C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23287143/

相关文章:

c - 为什么默认的 SIGPIPE 处理程序被更改?

c - 循环被忽略 - 指令仅执行一次

python - c 指针和 ctypes

c - 流浪\[反斜杠]在C代码中有什么意义吗?

c - C 中链表的简单实现 错误答案

javascript - 如何根据变量位禁用 java 脚本中的复选框?

c - 通过多个键(字符串)搜索相同值的正确数据结构是什么?

c - s[-1] = 0 是什么意思?

c++ - 某些异常错误是否只发生在调试器中?

c - 如何使用 malloc 复制字符串