关于(*q)++问题的

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:00:29
void f(int *q)
{int i=0;
for(;i<5;i++)(*q)++;
}
main()
{int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,"a[i]);
}
欲求结果
我知道答案,我想知道为什么不是23456!!!

输出62345
我是在Dev-C++上运行的
a[0]自增了5次,肯定是6啦,其他没变啊
要输出23456
应该改成这样:
void f(int *q)
{
(*q)++;
}
main()
{int a[5]={1,2,3,4,5},i;

for(i=0;i<5;i++){f(a);printf("%d,"a[i]);}
}

(*q)++是指向a组数第一个值,即1,然后q指向下一个位置,即2
结果为62345

62345

6,2,3,4,5