我在以下程序中收到错误
#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;'标记prog.c之前: function'main':prog.c:7:warning:隐式声明函数 “FUNC”
但是当我将函数参数类型从(&amp;)更改为(*)或任何时 其他类型然后它正常工作。
像这样:
#include<stdio.h>
void func(int *x,int *y){
}
int main(){
int a=10,b=6;
func(&a,&b);
return 0;
}
提前致谢。
NKS
答案 0 :(得分:3)
您收到编译器错误,因为您没有编写有效的C代码。 (int &x,int &y)
没有任何意义,看起来你正试图在C中使用C ++引用。
答案 1 :(得分:2)
C
中没有通过引用传递,您在代码中使用C++
语法,因为C
您的代码应该与第二个区块中提到的一样。
答案 2 :(得分:2)
C中不允许通过引用传递..第二个块代码是正确的..
当您在实际参数中传递变量地址时,您需要在C语言的形式参数中的指针变量中收集它们。
func(&x, &y) // actual parameters
void func(int *x, int *y) //formal parameters