#include<iostream>
using namespace std;
int main()
{
int a=10,b=5,c=3;
b!=!a;
c=!!a;
cout<< b<<" "<< c<< "\n";
return 0;
}
The output is:
5 1.
-4
A
답변
1
b!=!a
는 b != (!a)
식이 false
평가 같이 쓸 수있다.
결과가 아무 곳에도 저장되지 않으므로 컴파일러는이 행을 최적화 할 가능성이 큽니다.
c=!!a
이 c = !(!a)
첫 번째 !a
과 같이 쓸 수있다는 두 번째 !
(하지 0이 아닌 숫자입니다 0
현재) 당신에게 false
을 제공하지 즉 이전의 결과에 수행합니다 당신을 제공합니다 true
. 이 값은 c
으로 끝납니다. 변수 a
, b
의
내용은 c
는 11
(a
변경되지 않은)이다 5
(b
역시 변경되지 않은) 및 1
(!!a
의 결과).
0
b!=!a;
은 b != !a
으로 표시됩니다. 이것은 단지 비교 일 뿐이며 어떤 임무도 수행하지 않습니다. c=!!a;
은 c = !(!a)
이됩니다. !a
은 false
으로 해석됩니다. 1은 단지 true
을 의미합니다.
어디에서 찾았습니까? – StoryTeller
'b! =! a'는 거의 아무것도하지 않고 (아마 컴파일러에 의해 버려진 것입니다)'c = !! a'는'a'에 두 번하지 않습니다 (기본적으로 true/false 값으로 변환합니다; , 1)이고 그것을'c '에 할당합니다. – Yashas
거기에 없기 때문에 당신은 논리를 얻지 못하고 있습니다. – Slava