Tag: 指针运算

对于一个指针p,在极端情况下p <p + 1是否是假的?

对于指针variablesp ,有可能p <( p + 1 )是假的吗? 请解释你的答案。 如果是的话,在什么情况下会发生这种情况? 我想知道p + 1是否可以溢出并等于0。 例如,在一台C语言程序的GCC-4.8的64位电脑上: int main(void) { void *p=(void *)0xFFFFFFFFFFFFFFFF; printf("p :%p\n", p); printf("p+1 :%p\n", p+1); printf("Result :%d\n", p<p+1); } 它返回: p : 0xffffffffffffffff p+1 : (nil) Result : 0 所以我认为这是可能的。 对于无效的指针位置可能会发生。 这是我能想到的唯一解决scheme。 有其他人吗? 注意:不做任何假设。 考虑有可能发生这种情况的任何编译器/平台/架构/操作系统。