Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    21

    [C] Accesso ai campi di un tipo di dato complesso

    ciao per accedere ai campi di un tipo di dato strutturato che differenza c'è tra "." e "->"??
    es:
    typedef struct{
    int a;
    char b;
    } Tipo;
    Tipo t;
    che cambia tra t.a e t->a?

    grazie mille

  2. #2
    -> viene usato se la tua variabile è un puntatore alla struct... si utilizza per evitare di dover imprare la proiorità degli operatori..

    (*myvar).field
    equivale a
    myvar->field

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    21
    Originariamente inviato da xnavigator
    -> viene usato se la tua variabile è un puntatore alla struct... si utilizza per evitare di dover imprare la proiorità degli operatori..

    (*myvar).field
    equivale a
    myvar->field
    ok grazie!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da xnavigator
    si utilizza per evitare di dover imprare la proiorità degli operatori..
    Ma cosa c'entra ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    Ma cosa c'entra ...
    oO

    facendo *myvar.field non ottieni lo stesso risultato e devi per forza fare (*myvar).field

    oO

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma non è che l'operatore -> è nato perchè un programmatore pigro non voleva inserire le parentesi per l'operatore * ... ! Questa è una barzelletta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Ma non è che l'operatore -> è nato perchè un programmatore pigro non voleva inserire le parentesi per l'operatore * ... ! Questa è una barzeletta ...
    secondo te perchè è nato?


    vabè comunque io sapevo che era questo il motivo.. poi se non è cosi chissene

  8. #8
    Originariamente inviato da oregon
    Ma non è che l'operatore -> è nato perchè un programmatore pigro non voleva inserire le parentesi per l'operatore * ... ! Questa è una barzelletta ...
    in C l'operatore "->" ha il ruolo di scorciatoia sintattica (semanticamente non aggiunge nulla al linguaggio C):
    codice:
    tipo->campo = (*tipo).campo;
    Un po' come in algebra, in cui l'operazione differenza costituisce una scorciatoia sintattica per la somma tra un numero positivo ed uno negativo:
    codice:
    7-3 = (+7)+(-3);
    Verrebbe da dire che anche la moltiplicazione può essere interpretata come una scoricatoia sintattica per esprimere somme multiple.

    Quindi viva la pigrizia!

    Del resto per quale motivo in C/C++ si usa "=" come operatore d'assegnamento anziché il ":="?
    ;-)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.