C语言 我算不出来

1个回答

  • fun(int a,int *p)参数a没有带地址运算,所以a的值在函数结束后是不变的.

    a=1,b=2,c=0--------c=fun(a,&b)

    { a++;----------------->这里的a=2,主函数的a任然为1

    *p=a+1;------------->p为b地址的指针,b改变,*p=b=3

    return (*p+a)--->返回值赋值给c,c=5 }

    a=1,b=3,c=5--------b=fun(c,&a)

    { a++;----------------->a=6,主函数的c任然为5

    *p=a+1;------------->p为a地址的指针,a改变,*p=a=7

    return (*p+a)--->返回值赋值给b,b=13 }

    a=7,b=13,c=5--------a=fun(b,&c)

    { a++;----------------->a=14,主函数的b任然为13

    *p=a+1;------------->p为c地址的指针,c改变,*p=b=15

    return (*p+a)--->返回值赋值给a,a=29 }

    结果:a=29,b=13,c=15