今天看了一段代码,以为很简单,想不到还是犯了个错误
#include <stdio.h>
int fo(int *x,int *y,int z) //X指针指到了Y指针的位置,Y指针指向下一位,然后Z自加1,看看这样对了没
{
*x=*y++; //*x=4 相当于 *x=*y;*y++; 如果是*x=++*y,则*y+=1;*x=*y;
return(++z);
}
void main()
{
int a=3,b=4,c=5,d;
d=fo(&a,&b,c);
printf("%d,%d,%d,%d/n",a,b,c,d);
}
结果是4,4,5,6
刚开始没有注意 ++*y和 y*++的区别,小的地方不注意,积累起来多了查错就麻烦了-_-!