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:エラー:「&amp;」の前に「;」、「、」、または「)」が必要です。token 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使用しています。コードは 2 番目のブロックで述べたとおりである必要があります。C++C

于 2013-01-09T08:13:51.657 に答える
2

参照渡しは C では許可されていません。2 番目のブロック コードは正しいことです。

実パラメータで変数のアドレスを渡す場合、C 言語では仮パラメータのポインタ変数に集める必要があります。

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

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