void fun(int *n) {while((*n)--); printf("%d",++(*n)); } main() {int a=100; fun(&a); }
你们看它的结果应该是多少,答案是0,我怎么看上去是个死循环?编译时显示结果,一 连接便跳出,各位朋友帮忙讲解一下,可否?
{while((*n)--);看清楚,这里有个";"号,这句运算结束后*n=-1;
呵呵,流星雨好久没来啦(和我一样),肯定还在努力吧,趁KNOCKER他们没来,我先抢答 这个还是比较好理解地.
看见while((*n)--); 了吗? 请注意结尾的那个 ; 号,它在这里和while构成了个空循环.这个空循环的作用是把指针*n所指的数据变成-1
所以在 printf("%d",++(*n)); 的时候就输出0了,你还有什么疑问吗?
这个到是不古怪,常用的。