代码如下:
int main(){
char str[20]="helloworld";
char* p=str;
(1) cout << (void*) p << endl;
cout << "p++=" << sizeof(p++) << endl;
(2) cout << (void*) p << endl;
cout << "p++=" << strlen(p++) <<endl;
(3) cout << (void*) p << endl;
}
输出结果为:
0xbfa42e84
p++=4
0xbfa42e84
p++=10
0xbfa42e85
可以看到(1)和(2)结果没有发生变化。谁能解释下原因。个人认为是sizeof在编译阶段就已经完成。并没有发生p++的操作。 |