在 C 中,{ a[i] = a[++i] } 等价于 { a[i] = a[i+1];我++;}?
In C, is { a[i] = a[++i] } equivalent to { a[i] = a[i+1]; i++;}?
在 C 中,是
a[i] = a[++i];
相当于
a[i] = a[i+1]; i++;
即赋值的哪一边先求值,左边用i
的什么值?还是这个赋值有歧义?
在您使用和递增的同一序列点中i
a[i] = a[i++];
这将导致未定义的行为。
a[i] = a[i+1];
i++;
很好。
并回答您的问题它们是否相同?不,他们不是 !!一个定义明确,另一个定义不明确。
勾选这个answer
在 C 中,是
a[i] = a[++i];
相当于
a[i] = a[i+1]; i++;
即赋值的哪一边先求值,左边用i
的什么值?还是这个赋值有歧义?
在您使用和递增的同一序列点中i
a[i] = a[i++];
这将导致未定义的行为。
a[i] = a[i+1];
i++;
很好。
并回答您的问题它们是否相同?不,他们不是 !!一个定义明确,另一个定义不明确。
勾选这个answer