testFalse
- логическое значение, которому присвоено значение false
.
thisIsFalse
является указателем на логическое значение и ему присваивается значение, равное адресу testFalse
(я полагаю, вы имели в виду &testFalse
вместо &test
) Это означает, что при использовании *thisIsFalse
он будет указывать на значение, хранящееся в testFalse
, в данном случае false
. Если вы измените значение testFalse
на true
, то *thisIsFalse
будет true
.
shouldBeFalse
- логическое значение, но вы присвоили ему значение, равное адресу thisIsFalse
. Этот адрес является ненулевым значением, и в C ++ любое ненулевое значение считается true
, поэтому shouldBeFalse
теперь true
.
Вместо этого вам следует изменить последнюю строку, чтобы присвоить shouldBeFalse
разыменованное значение thisIsFalse
, а не адрес.
bool shouldBeFalse = *thisIsFalse;