我知道*a++ = *b++
是安全且常用的。但是这种变体在 C、C++ 中也安全吗?
*a++ = *b++ = 0;
一些解释:
假设
a
和b
都是int *
变量,而不是函数调用或宏。假设
a
和b
是不同的变量。假设
a
和b
不是volatile
。(但如果你真的知道这里发生了什么,你应该知道volatile
案例中的答案。)安全意味着行为是明确定义的。(希望是: 0 分配给两者
*a
和*b
,然后两者a
和b
都增加一次。)
如果可能,请提供一些权威信息(如相关规范)的链接。