Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    6

    [C] Uso di operatori di confronto in costrutti diversi da if()

    Salve a tutti,
    conosco bene l'utilizzo degli operatori " <, >, >=, && ,||,&,~ , *,&,ecc..." nel C e li ho utilizzati quasi unicamente in espressioni condizionali (esempio: if ( a >= b && b!= *c ) ), oggi ne ho trovato un uso che mi ha lasciato perplesso.
    Il return di una funzione che andava a cambiare il valore di alcune variabili è questo :

    return a + *d < 2*c + b;

    Non ho mai visto utilizzare l'operatore " < " in un'espressione non condizionale,qual è il significato?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Veramente quella è una espressione condizionale

    a + *d < 2*c + b

    che, come tutte le espressioni, ha un risultato. Che il risultato sia valutato da una if o restituito da una return (o assegnato ad una variabile), poco importa.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    6
    Grazie Oregon,quindi il risultato sarebbe a + b + il risultato di *d < 2*c ( che sarebbe 1 o 0 ) .
    Non è che si fa a + *d o 2*c in base al risultato di *d < 2*c, *d<2*c vale o 0 o 1 giusto ?
    Ultima modifica di feded; 11-11-2017 a 13:48

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Calcola la parte a sinistra del < e poi la parte a destra e confronta. Se il primo valore è < del secondo allora il risultato è 1 altrimenti 0

    Puoi fare semplici prove
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    6
    Si Oregon grazie tutto chiaro.
    Il problema è che non avevo mai visto usare gli operatori in quel modo.
    Conosco bene gli operatori, anche quelli bit a bit tipo and, xor,shift ecc... e ne so calcolare il valore ( seguo un corso di Assembly al momento) solo che pensavo fosse una cosa più articolata, sai magari tipo come si fa con ? e : che verifica e poi associa un valore se true o un altro se false, non mi aspettavo un 1 o 0.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.