我有下面的代码片段大运行:这些代码片段有什么区别?
char* head = str;
char* tail = head;
while (*tail) {
++tail;
}
我改变了while循环简化和新的代码是
char* head = str;
char* tail = head;
while (*tail++);
我认为上述2个的代码段的工作相同。但是第二个呢!在GDB中我看到,对于一个有32个字符的字符串,指针尾部比头部大33,应该是31.
我真的很困惑。
尽管表达式的**值**('* tail'和'* tail ++')是相同的,它们的**副作用**是不同的。 – pmg 2011-12-18 22:18:19