我的代码:
#include <stdio.h>
void adding(int a,int b,int& sum);
int main(int argc, char const *argv[])
{
int sum = 0;
int a = 5;
int b = 6;
printf("Sum of %d and %d = ", a, b);
adding(a,b,sum);
printf("\n%d", sum);
return 0;
}
void adding(int a, int b, int& sum)
{
sum = a + b;
printf("%d", sum);
}
我只是想看到将对 var(sum) 的引用作为参数传递给函数,其中该 var 将更改它的值 -> 也会更改 main() 中的值。但我得到这个:
error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
但是它在我正在阅读的 C 书中工作正常。
我的平台:Ubuntu 22.04 海湾合作委员会版本:13.2.0 IDE:VS Code
int& sum
不是 C 的标准语法。在 C++ 中,它声明 sum
是引用。
在 C 中,要提供可以访问对象的函数,请将参数声明为指针,如
int *sum
所示,并且在调用函数时,传递对象的地址,如 adding(a, b, &sum)
所示
.
如果这本书是一本 C 书而不是一本 C++ 书,那就错了。