读书人

请教一个指针后置运算符的有关问题

发布时间: 2012-05-27 05:42:30 作者: rapoo

请问一个指针后置运算符的问题?

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++表达式求值顺序 裘老的解释

读书人网 >C++

热点推荐