你能告诉我下一段代码是否可以工作吗?它的意思是什么?我说的是这一行: 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的双重赋值(浅复制?)
谢谢
发布于 2014-04-25 07:49:37
b=c返回b的值(在c被赋值之后),它被赋值给a。它们是指针,所以它只复制4或8个字节,而不是结构。
发布于 2014-04-25 07:53:58
这行代码的意思相当简单,但总的来说,我会说它是无用的(无意冒犯)。
发生的情况是:
B(作为指针)指向c的相同内存位置,a(作为指针)指向b的相同内存位置(因此也指向c)
如果c为空,则返回false。
我会说这就像是在说
如果(c != 0)
就逻辑条件而言,添加了指针A和b的分配。
https://stackoverflow.com/questions/23287143
复制相似问题