Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    51

    [C] uso di "_" nelle variabili e ancora sui puntatori.

    Tre domande.

    Una riguardo lo stile. Come si usa l'underscore in C?
    variabili come _pippo e __pippo di solito vengono usate per dichiarazioni particolari?

    Poi (puntatori)...

    In alcuni listati che sto studiando ci sono delle funzioni che prendono come argomento dei puntatori a carattere, tipo

    void pippo(char *a)

    ma poi di fatto vedo che nelle chiamate vengono passate delle semplici stringhe, tipo

    pippo("pasquale")

    Mi potreste spiegare il perche'?

    Infine:

    In altri casi, ho visto delle funzioni che prendono anche loro stringhe come argomento, sono scritte diversamente:

    void pippo(char* a)

    Che differenza c'e' con quella sopra??

    Grazie a tutti. Ho cercato queste cose sulle varie guide online, ma non lo spiegava nessuno, o forse lo spiegavano in maniera diversa da come mi si sono presentate, ed io non le ho viste...

    Ciao!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465

    Re: [C] uso di "_" nelle variabili e ancora sui puntatori.

    Originariamente inviato da zaxis
    Tre domande.

    Una riguardo lo stile. Come si usa l'underscore in C?
    variabili come _pippo e __pippo di solito vengono usate per dichiarazioni particolari?
    Non esiste una regola definita per usare l'underscore.
    Molti compilatori tuttavia, utilizzano la convenzione di utilizzare un underscore o due underscore anteposti a variabili di sistema.

    Fossi in te, non mi soffermerei molto sull'argomento ...
    Originariamente inviato da zaxis
    Poi (puntatori)...

    In alcuni listati che sto studiando ci sono delle funzioni che prendono come argomento dei puntatori a carattere, tipo

    void pippo(char *a)

    ma poi di fatto vedo che nelle chiamate vengono passate delle semplici stringhe, tipo

    pippo("pasquale")

    Mi potreste spiegare il perche'?
    Semplicemente perche' una costante stringa (come "pasquale") e' rappresentata internamente da un puntatore a carattere.

    Originariamente inviato da zaxis
    Infine:

    In altri casi, ho visto delle funzioni che prendono anche loro stringhe come argomento, sono scritte diversamente:

    void pippo(char* a)

    Che differenza c'e' con quella sopra??
    Nessuna.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    51

    Re: Re: [C] uso di "_" nelle variabili e ancora sui puntatori.

    Originariamente inviato da oregon


    Semplicemente perche' una costante stringa (come "pasquale") e' rappresentata internamente da un puntatore a carattere.
    Ma se dichiaro la funzione

    void pippo (char a)

    e' un errore? Dovrei scrivere qualcosa come

    void pippo (char a[50])

    ???

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465

    Re: Re: Re: [C] uso di "_" nelle variabili e ancora sui puntatori.

    Originariamente inviato da zaxis
    Ma se dichiaro la funzione

    void pippo (char a)

    e' un errore?
    Certo.

    char a

    vuol dire che puoi passare *un solo* carattere e non una stringa.

    Originariamente inviato da zaxis
    Dovrei scrivere qualcosa come

    void pippo (char a[50])
    Sì anche se la forma con il puntatore e' piu' flessibile in quanto indichi il passaggio di una stringa ma non ne limiti le dimensioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    51

    Re: Re: Re: Re: [C] uso di "_" nelle variabili e ancora sui puntatori.

    Originariamente inviato da oregon

    Sì anche se la forma con il puntatore e' piu' flessibile in quanto indichi il passaggio di una stringa ma non ne limiti le dimensioni.
    Ahhh comincio a capire.
    Poiche' la stringa e' un array, e poiche' quando passiamo un array alle funzioni in realta' passiamo la locazione in memoria del suo primo elemento, cioè un puntatore (scritto senza *) tanto vale dichiararla direttamente come puntatore.

    Cioe, per vedere se ho capito.

    void pippo(char a[50])

    equivale a

    void pippo(char &a[0])

    e quindi in tutte le occorrende dentro la funzione pippo verra' usata la la locazione di memoria del primo elemento di a.

    Allora, tanto vale dichiararla come

    void pippo(char *a)

    cosi', usando a (senza asterisco) all'interno della funzione, uso in effetti la locazione del suo primo elemento, esattamente come sopra...

    Giusto?


    Ma allora potrei anche scrivere

    void pippo(char a[])

    ma magari viene considerata meno elegante...o no?

    Ciao!
    e Grazie!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Sì ... giusto ...

    Ciao

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.