using namespace std;
int main()
{
char blocks[3] = {'A','B','C'};
char *ptr = &blocks[0];
char temp;
ptr = blocks;cout<<*ptr;
temp = *++ptr;cout<<endl<<temp;
temp = ++*ptr;cout<<endl<<temp;
temp = *ptr++; cout<<endl<<temp;
temp = *ptr; cout<<endl<<temp;
return 0;
}
第11行的++*ptr操作后,按道理应该先*ptr,再将这里面的值++,并不改变指针值才对。就是ptr仍是指向字符'B'的。那么第12行的*ptr++,应该输出字符'B’,然后再指针向后移一位,可是为什么编译运行后输出的是'C'呢?