可能的重复:
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;
}
Run Code Online (Sandbox Code Playgroud)
我以为我会得到99 99 98 98 100输出,但我得到100 100 100 99 100输出.我不明白为什么.当与++或 - (pre或postfix)运算符一起使用时,指针的行为与正常变量不同.你可以帮我理解这个程序是如何运作的
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |