Warum "int i = (Byte) + (char) - (int) + (lang) - 1" ist 1? [Duplikat]

7

Ich stolperte über diesen Code im Internet

%Vor%

Es druckt 1 .

Kann ich wissen warum?

Hier ist die Quelle - & gt; Ссылка

    
Abhishek Singh 16.07.2014, 13:22
quelle

3 Antworten

15
%Vor%

+ - + - weisen das Zeichen ( Unäre Operatoren ) zu der Zahl, also - dann + dann - und schließlich + gibt dir 1 .

Wenn wir die Typumwandlung nur ignorieren , haben wir (+(-(+(-(1)))))=1

Gleichwertiger Code:

%Vor%     
coder-croc 16.07.2014, 13:25
quelle
14

Da nach der Anwendung von Vorrangregeln für Operatoren die folgenden Regeln gelten:

%Vor%

was zu -(-1) entspricht, was 1 ist.

    
OldCurmudgeon 16.07.2014 13:25
quelle
6

Aufgrund von Typ-Casting entspricht dies

%Vor%     
Konstantin V. Salikhov 16.07.2014 13:25
quelle

Tags und Links