如何输出我的void函数?有一个错误(没有用于“增量值”调用的匹配函数),我不知道为什么。
我是编程的初学者。
#include <iostream>
using namespace std;
struct Pair{
int x;
int y;
};
void increment_value(int *v){
(*v)++;
// cout<<v<<endl;
}
int main(){
int a = 1;
int b = increment_value(a);
cout<<b<<endl;
return 0;
}
答案 0 :(得分:3)
由于您要声明一个将指向int的指针作为其参数的函数,因此需要向其传递一个指向int的指针。可以使用&
操作符的地址来完成。
#include <iostream>
void increament_value(int *v){
(*v)++;
}
int main(){
int a = 1;
increament_value(&a); // Note "addressof" operator `&`
std::cout << a << std::endl; // Expected output: 2
return 0;
}
答案 1 :(得分:2)
代码的问题是您正在参数中传递(a
)普通值,但在参数列表中您编写了指针(*v
),这给您带来了错误。另外,您在函数中编写了void
,这意味着您不会返回任何内容,但是另一方面,您编写了int b = function()
,则意味着该函数将返回错误的内容。
应该是
int increament_value(int v){
v++;
return v;
}
int main(){
int a = 1;
int b = increament_value(a);
cout<<b<<endl;
return 0;
}
答案 2 :(得分:0)
您正在调用的函数应该在分配值时打印某些内容。这就是为什么在您调用它时不打印。并且您应该返回值,因此将其从void更改为int