1447391641 发表于 2020-12-5 14:23:34

指针

include<stdio.h>
void w( int y, int *x)
{
y=y+*x; *x=*x+y;            这里是怎么加的呢。
}
int main()
{
int x=2,y=4;
w(y,&x);         &x不应该是取的2吗。
printf("%d,%d\n",x++,++y);
}

北冰羊 发表于 2020-12-5 14:33:40

include<stdio.h>
void w( int y, int *x)
{
y=y+*x; *x=*x+y;         //实参x=2,y=4传入      y=4+2=6;x=2+6=8 ;    此时注意传入的实参,实参y传入并不是传入地址,实参y的值并不改变,而x传入地址,地址改变,因此x实际值改变
}
int main()
{
int x=2,y=4;
w(y,&x);         &x不应该是取的2吗。
printf("%d,%d\n",x++,++y);    //此时x=8,y=4;      ++y先执行++因此y=5;    x++是在该语句结束后++,因此x=8不变
}
页: [1]
查看完整版本: 指针