2

我在以下程序中遇到错误

   #include<stdio.h>   
        void func(int &x,int &y){
        }
        int main(){
            int a=10,b=6;

            func(a,b);
            return 0;
        }

错误:

prog.c:2:错误:在 '&' 之前应为 ';'、',' 或 ')' 令牌 prog.c:在函数'main'中:prog.c:7:警告:函数'func'的隐式声明</p>

但是当我将函数参数类型从 (&) 更改为 (*) 或任何其他类型时,它工作正常。

像这样:

  #include<stdio.h>
    void func(int *x,int *y){

    }
    int main(){
        int a=10,b=6;
        func(&a,&b);
        return 0;
    }

提前致谢。

NKS

4

3 回答 3

3

由于您没有编写有效的 C 代码,因此您收到编译器错误。(int &x,int &y)没有任何意义,看起来您正在尝试在 C 中使用 C++ 引用。

于 2013-01-09T07:50:11.797 回答
2

C 中不允许通过引用传递。第二个块代码是正确的。

当您在实际参数中传递变量的地址时,您需要将它们收集在 C 语言形式参数中的指针变量中。

func(&x, &y)    // actual parameters

void func(int *x, int *y)    //formal parameters
于 2013-01-09T08:43:59.987 回答
2

中没有引用传递C,您在代码中使用C++语法,因为C您的代码应该与您在 2nd Block 中提到的一样。

于 2013-01-09T08:13:51.657 回答