我對下面的程序有些困惑。在我的if語句中,我調用布爾函數兩次。對於i和j變量,我應該執行「else」語句,因爲這兩個函數調用都會生成true。但我的「我」變量沒有被修改(它輸出爲1001而不是1000),我不知道爲什麼。 j變量正在按預期進行修改。第一個函數調用傳入「j」變量,第二個函數調用傳入「i」變量。有人可以解釋爲什麼「我」變量沒有被修改?if語句中的布爾函數調用
#include <iostream>
using namespace std;
const int MINCOLOR = 0;
const int MAXCOLOR = 1000;
bool clipColor(int &amountColor);
int main()
{
int i=1001;
int j = 3333;
int k;
bool check;
if (clipColor(j) == false && clipColor(i) == false)
{
check = false;
}
else
{
check = true;
}
cout << i << " " << j << " " << check << " " << endl;
return 0;
}
bool clipColor(int &amountColor)
{
if (amountColor > MAXCOLOR)
{
amountColor = MAXCOLOR;
return true;
}
else if (amountColor < MINCOLOR)
{
amountColor = MINCOLOR;
return true;
}
else
{
return false;
}
}
我敢肯定,我們有這個問題的一個騙局。 –
謝謝一堆。 \ – nm17
有沒有什麼辦法可以讓第二個函數調用被評估? – nm17