正在跳过true条件

Ale*_*lex 1 c++ if-statement

我想弄清楚为什么会跳过这个条件..这是一个二维数组,它是非常自我解释的是什么被比较.这是代码首先进行解释.

if ((reversed[i][j] == true) && (circle[i][j] == 'C'))
{
   reversed[i][j] == false;
}
else if (circle[i][j] == 'C')
   reversed[i][j] == true;
Run Code Online (Sandbox Code Playgroud)

问题是,如果它是真的,它正在跳过其他人; 我在代码之前使用cout进行了测试,我说:

cout<<circle[i][j]; 
Run Code Online (Sandbox Code Playgroud)

并且它表明它确实是'C'这很奇怪,我从来没有见过这样的东西.我希望有一些我想念的简单.

圆定义如下:

char **circle;

circle = new char *[SIZE];
for (int i = 0; i < SIZE; i++)
  circle[i] = new char[SIZE];
Run Code Online (Sandbox Code Playgroud)

Chr*_*ger 7

你确定要写吗?

if ((reversed[i][j] == true) && circle[i][j] == 'C'))
{
  reversed[i][j] == false;
}
else if (circle[i][j] == 'C')
  reversed[i][j] == true;
Run Code Online (Sandbox Code Playgroud)

而不是这个?

if ((reversed[i][j] == true) && circle[i][j] == 'C')
{
  reversed[i][j] = false; // assignment here
}
else if (circle[i][j] == 'C')
  reversed[i][j] = true;  // assignment here
Run Code Online (Sandbox Code Playgroud)