如何检查int变量是否被修改?

时间:2015-01-27 15:42:40

标签: c++

我传递给一个函数的整数变量(其初始值我不知道),该变量通过“一个”来递增/修改变量。或者'零'在某些条件下。在函数调用之后是否可以检查变量是否被修改过天气?。

IDE:MSVC 2012

5 个答案:

答案 0 :(得分:3)

简单

void modify(int& var) {
  if (certainConditions) {
    var++;
  }
}

int oldValue = myValue;
modify(myValue);
if (oldValue != myValue) {
   //modified
}

或者@juanchopanza建议如果修改了值,则返回bool,然后你不必传递引用

bool modify(int var) {
  if (certainConditions) {
    var++;
    return true;
  }
  return false;
}


if (modify(myValue)) {
   //modified
}

答案 1 :(得分:0)

使用另一个变量怎么样? 这个操作可能还有一点额外的内存

伪代码:

int oldvalue = yourUnknownVariable;

func(yourUnknownVariable);

if(yourUnknownVariable==oldvalue)
{
     // not modified
}

答案 2 :(得分:0)

显而易见的方法是使用bool返回值:

bool modifyvar(int& var)
{
    bool ret = false;
    if(condition)
    {
        var++;
        ret = true;
    }
    return ret;
}

如果您已经返回了某些内容,则可以返回tuple<T, bool>,修改全局变量(不推荐,但C库通常如何处理此类问题),将引用传递给布尔值为如果您需要返回相当多的不同内容,请参数或返回包含所有相关值的structclass

答案 3 :(得分:0)

//Assign the value of the variable into another one *before* invocation.
int oldValue = varValue;
//your function invocation happens here.
//NOTE: you are probably passing a reference of the integer to it.
invokeMyFunction(varValue);
//Compare the old with the current value of the variable
if(oldValue != varValue)
{
  //Code executed if value modified here.
}

答案 4 :(得分:0)

int value = 1; cin&gt;&gt;“您的变量已被修改”;

或者

int value = 1; //做一些变量,可能值= 2; 或者你需要做什么。

如果(值!= 1) cout&gt;&gt;“我的价值被修改了”; 其他 cout&gt;&gt;“我的价值未被修改”;