wat is de betekenis van == teken?

Ik probeer erachter te komen wat == teken betekent in dit programma?

int main()
{
    int x = 2, y = 6, z = 6;        
    x = y == z;
    printf("%d", x);
}

Antwoord 1, autoriteit 100%

De operator ==test op gelijkheid. Bijvoorbeeld:

if ( a == b )
    dosomething();

En, in jouw voorbeeld:

x = y == z;

x is waar (1) als y gelijk is aan z. Als y nietgelijk is aan z, is x onwaar (0).

Een veelgemaakte fout gemaakt door beginnende C-programmeurs (en ook een typfout gemaakt door enkele zeer ervaren) is:

if ( a = b )
    dosomething();

In dit geval wordt b toegewezen aan a en vervolgens geëvalueerd als een booleaanse expressie. Soms zal een programmeur dit opzettelijk doen, maar het is een slechte vorm. Een andere programmeur die de code leest, weet niet of het met opzet (zelden) of per ongeluk (veel waarschijnlijker) is gedaan. Een betere constructie zou zijn:

if ( (a = b) == 0 )   // or !=
    dosomething();

Hier wordt b toegewezen aan a, dan wordt het resultaat vergeleken met 0. De bedoeling is duidelijk. (Interessant is dat ik met C#-programmeurs heb gewerkt die nog nooit pure C hebben geschreven en je niet kunnen vertellen wat dit doet.)


Antwoord 2, autoriteit 25%

Het is de operator “is gelijk aan”.

In het bovenstaande voorbeeld wordt aan xhet resultaat van de gelijkheidstest (y == z)-expressie toegewezen. Dus als ygelijk is aan z, wordt xingesteld op 1(true), anders 0(false). Omdat C (vóór C99) geen booleaans type heeft, evalueert de uitdrukking tot een geheel getal.


Antwoord 3, autoriteit 20%

Gelijkheid. Het geeft 1 terug als de operanden gelijk zijn, anders 0.


Antwoord 4, autoriteit 10%

== betekent “komt overeen met”. Deze operator heeft een hogere prioriteit dan = (gelijk aan) operator. Dus de vergelijking x = y == z; zal proberen het resultaat van y==z toe te wijzen aan variabele x. wat in dit geval 1 is.


Antwoord 5, autoriteit 5%

int main()
{
    int x = 2, y = 6, z = 6;        
    x = y == z;
    printf("%d", x);
}

laten we zo beginnen:

x = (6==6)

Het vraagt is 6 gelijk aan 6?: waar

x = waar, maar aangezien x een int is, x= 1
De nieuwe waarde van x is 1.

Het volgende wordt afgedrukt:

1


Antwoord 6

Het zegt

X is gelijk aan true/1 of false/0.

een andere manier om naar die regel te kijken is deze:

x =  ( is y equal to true? then true/1 or false/0 )

Antwoord 7

== operator gebruikt voor gelijkheid..
hier in je voorbeeld
als y gelijk is aan z, dan heeft x een echte waarde, anders heeft x een onwaar


Antwoord 8

Denk er zo over na:

= betekent iets een waarde geven.

== betekent controleren of het gelijk is aan een waarde.

Bijvoorbeeld

int val = 5; //val is 5
//= actually changes val to 3
val = 3; 
//== Tests if val is 3 or not. 
//note: it DOES NOT CHANGE the value of val.
val == 3; 
int new_val = val == 3; //new_val will be 1, because the test is true
//the above statement is the same as
bool is_val_3 = false;
if( val == 3 )
   is_val_3 = true;
int new_val;
new_val = is_val_3;
//putting it together, 
val = new_val == 2; //sets val to 0. do you understand why now?

Other episodes