问答详情
源自:5-14 综合练习

关于再赋值(换值)的问题

#include <stdio.h>

int index=0;

int huan(int z,int x)

{index=z;

    x=index;

    printf("%d--%d--%d\n",index,x,z);

}

int q=1,a=99;

int main()

{

   huan(q,a) ;

   printf("%d",a);


    return 0;

}

输出:1--1--1

        99

问为什么a的值没换.应该怎么换?

提问者:Alone风 2018-07-13 23:29

个回答

  • Helenc
    2018-07-15 12:10:19

    #include <stdio.h>

    int index;

    int huan(int z,int x) {

        index=x;

        x=z;

        return x;

    }

    int q=1,a=99;

    int main(){

       int c;

       c=huan(q,a) ;

       printf("a=%d",c);

       return 0;

    }

    运行结果:

    hello.c:2:5: warning: built-in function 'index' declared as non-function
     int index;
         ^~~~~
    a=1
    1. index是空的,不要赋值(赋值为0也是赋值)

    2. huan(int z,int x)是一个int型函数,不是void,所以要有返回值,你没写return。

      不知道这是不是你需要的答案