2024-12-01 12:05:52
为什么是返回2x+2+2
你看下int func(int x,int *p)
{
x++; //x=x+1
*p=x+2; //=x+1+2
return(*p+x); //=x+1+2+x+1=2x+4
}
c=func(a,&b);//a=a++=2,b=a+2=4,c=6
b=func(c,&b);//c=c++=7,b=7+2+7=16,b=16
a=func(b,&c);//b=b++=17,c=17+2=19,a=17+19=36
a=36,b=17,c=19
您看看哪里有问题
c=func(a,&b);//a=a++=2,b=a+2=4,c=6
注意这里的func的第一个参数是a,是普通的传递,在func里对a的操作是不会影响到外面的a的,所以a无论是多少,执行func后都不会变化,所以这一行执行完后,a还是1,可以走下流程
c=func(a,&b)第一次执行
int func(int x,int *p) 此时传入的a=1
{
x++; //x=2
*p=x+2; //*p=2+2=4
return(*p+x); //return 4+2=6
}
即此时abc为1、4、6
🙏
2024-12-01 00:42:22
2024-12-01 08:27:11
c=func(a,&b);//a=a++=2,b=a+2=4,c=6
b=func(c,&b);//c=c++=7,b=7+2+7=16,b=16
a=func(b,&c);//b=b++=17,c=17+2=19,a=17+19=36
a=36,b=17,c=19
2024-12-01 06:23:00
2024-12-01 06:11:52