如果下一个代码能够正常工作并且它的含义是什么,请告诉我吗?我在谈论这一行: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
是否将struct c双重赋值为a和b(浅拷贝?)
谢谢
答案 0 :(得分:3)
b = c返回b的值(在指定c之后),它被赋值给a。它们是指针,所以它只复制4或8个字节,而不是结构。
答案 1 :(得分:0)
这段代码行的意思相当简单,但总的来说我会说没用(没有违法行为)。
会发生什么:
b(作为指针)指向c的相同内存位置,a(作为指针)指向b的相同内存位置(因此c)
如果c为null,则返回false。
我会说这就像说
if(c!= 0)
在逻辑条件方面增加了指针a和b的赋值。