可能重複:
C programming: is this undefined behavior?
Is this program having any sequence point issues ?C指針和功能
嗨,
我運行下面的程序
void print(int *a, int *b, int *c, int *d, int *e)
{
printf("\n %d %d %d %d %d",*a,*b,*c,*d,*e);
}
int _tmain(int argc, _TCHAR* argv[])
{
static int arr[] = {97,98,99,100,101,102,103,104};
int *ptr=arr+1;
print(++ptr,ptr--,ptr,ptr++,++ptr);
getchar();
return 0;
}
我想我會得到99 99 98 98 100
作爲輸出,但我得到100 100 100 99 100
作爲輸出。我不明白爲什麼。與++或 - (pre或postfix)運算符一起使用時,指針的行爲與普通變量的行爲不同。您能否幫我理解程序是如何工作的
以前在SO上詢問過的類似問題... – 2011-05-28 05:33:09