请问一个指针后置运算符的问题?
- C/C++ code
unsigned char p[]={0x31,0x30}; unsigned char *q=new unsigned char[2]; memcpy(q,p,2); unsigned int x=(*q++)+(*q++);为什么结果x:0x62,这是什么回事呀?
[解决办法]
这个和 int x,i=0;
x=(i++)+(i++);一样 是典型的未定义行为。所以不用纠结。
参考:
http://topic.csdn.net/u/20110826/09/601EBE9C-C2AE-4D63-A4E2-506C618BB654.html
[解决办法]
C,C++表达式求值顺序 裘老的解释