在阅读了序列点之后,我了解到这i = ++i
是未定义的。
那么这段代码怎么样:
int i;
int *p = &i;
int *q = &i;
*p = ++(*q); // that should also be undefined right?
假设 p 和 q 的初始化是否取决于某些(复杂的)条件。并且它们可能像上述情况一样指向同一个对象。会发生什么?如果未定义,我们可以使用哪些工具来检测?
编辑:如果两个指针不应该指向同一个对象,我们可以使用 C99 限制吗?是“严格”的意思吗?