首页 > 解决方案 > 这两个示例中“++值”之间的区别

问题描述

#include<iostream>
#define LOG(x) std::cout<<x<<std::endl
void increment(int value)
{
    ++value;
    
}
int main()
{
    int a = 6;
    increment(a);
    LOG(a);
    std::cin.get();
}

我按F11并调试到“增量”函数。函数的参数等于6。但是为什么“值++”不起作用。我知道它被称为“传值”,但我认为本地值应该改变在身体机能上。

#include<iostream>
    #define LOG(x) std::cout<<x<<std::endl
    void increment(int& value)
    {
        ++value;
        
    }
    int main()
    {
        int a = 6;
        increment(a);
        LOG(a);
        std::cin.get();
    }

这里我通过引用和值加一。是不是编译器无法获取“++value”的地址,所以会被丢弃,抱歉第一次提交。

标签: c++

解决方案


推荐阅读