问答详情
源自:2-3 顺序表编码实战(二)

关于函数的参数

这里参数为什么都要是Elem *e,我用Elem e不可以吗?

提问者:梦游病者 2018-12-13 19:53

个回答

  • Raindrips
    2018-12-14 19:30:27
    已采纳

    Elem *e 是传入地址值,e的值发生在函数体内改变后会将原来的值同时改变,目的为了返回e的值

    例:

    void swap(int a,int b){
        int t=a;
        a=b;
        b=t;
    }
    void swap2(int *a,int *b){
        int t=*a;
        *a=*b;
        *b=t;
    }
    int main(){
        int a=2,b=3;
        swap(a,b);    // a=2 b=3 (ab的值未发生改变)
        swap2(&a,&b); //  a=3 b=2 (ab以完成交换)
    }