如何输出增量值?

时间:2019-11-16 16:29:16

标签: c++ visual-c++

如何输出我的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;
}

3 个答案:

答案 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