错误:在'&'之前预期';',','或')'令牌|在网上找到一个简单的C程序

时间:2013-11-05 06:17:33

标签: c codeblocks

我发现这个程序在线练习C.当我尝试在Code块中编译这个程序时,我在'&'之前收到此错误“错误:预期';',','或')'令牌|“在两个地方(在代码中提到)。如果有人能解释我错误的原因,那将会非常有帮助。

#include<stdio.h>
int f1(int x,int y)
{

x=x+2;
y=y+3;
return x+y;}
int f2(int &x,int y) //error: expected ';', ',' or ')' before '&' token|

{
 x=x+2;
y=y+3;
return x+y;
}
int f3(int *x,int *y)
{

*x = *x+2;
*y = *y+3;
return *x+*y;
}
int f4(int x,int &y,int *z)//error: expected ';', ',' or ')' before '&' token|
{    x=x+y;

 y=*z+3;
z=&x;
*z=y*2;
return *z;
}
main()
{
int k=3,m=5,r=0;
printf("1) %d %d %d\n",k,m,r);
r=f1(k,m);
printf("2) %d %d %d\n",k,m,r);
r=f2(k,m);
printf("1) %d %d %d\n",k,m,r);
r=f3(&k,&m);
printf("1) %d %d %d\n",k,m,r);
r=f4(k,m,&r);
printf("1) %d %d %d\n",k,m,r);

return 0;
}

3 个答案:

答案 0 :(得分:1)

在C中,你不应该使用像C ++这样的函数定义AS中的引用。

您甚至不需要使用指针,因为您只是传递值。

int f2(int &x,int y) 
          ^^

修改上述功能定义

 int f2(int x,int y) 

此行也

 int f4(int x,int &y,int *z)

修改上述功能定义

 int f4(int x,int y,int *z)

并宣布你的职能。

答案 1 :(得分:1)

第11行应为int f2(int *x,int y)

您发布的代码是C ++代码。不是C代码。您无法在C编译器上执行C ++代码。

答案 2 :(得分:0)

这不是C程序。这是一个C ++程序。它没有使用太多的C ++功能,但它足以使这些代码不可编译为C代码。

将其编译为C ++或将其转换为C.后者需要重写相当多的代码。