Puntatori: Teoria ed Esercizi in C

Поделиться
HTML-код
  • Опубликовано: 28 дек 2024

Комментарии • 85

  • @capitanvita
    @capitanvita 2 года назад +17

    Ciao, premetto che sono un assoluto principiante che ha iniziato a studiare programmazione da nemmeno un mesetto all'uni, per cui scusate se la mia domanda può risultare banale, ma a cosa servono di preciso i puntatori? Quali sono le loro applicazioni? Al posto di dichiararlo, definirlo uguale all'indirizzo di memoria di un'altra variabile ecc.. non è decisamente più facile e immediato operare direttamente con la variabile in questione? Perché passare attraverso il puntatore? Grazie

    • @GetTheCookie
      @GetTheCookie  2 года назад +31

      I puntatori hanno molteplici utilizzi nel linguaggio, alcuni avanzati e alcuni semplici.
      Per farti capire, il vantaggio più semplice è poter creare una funzione pass-by-reference.
      Normalmente quando chiami una funzione con parametro in C, questo parametro (per semplicità supponiamo un numero intero) viene copiato in un area di memoria a parte, viene usato dal funzione, e viene poi deallocato.
      Se tu crei una variabile intera (int) e passi questa variabile intera ad una funzione (che accetta come parametro int), questa funzione vedrà solo il contenuto della variabile, in poche parole il "numero". Può utilizzare il valore della variabile, ma non può cambiare il contenuto della tua variabile originale (quella che hai passato dal main). Questo è pass by value, ed è così che C lavora di default.
      Se tu invece passi un puntatore a intero (int*) alla funzione (che accetta un puntatore a intero come parametro), allora tu non hai solo la variabile intera: hai il suo indirizzo.
      Puoi dereferenziare l'indirizzo e ottenere il valore, e fare quello che facevi prima, ma puoi anche scrivere in quell'indirizzo, e quindi "rompere" il meccanismo di pass-by-value, perché modifichi il valore originale della variabile da te passata dal main.
      Questo meccanismo rende i puntatori utilissimi in molti contesti (che ad un principiante possono non risultare ovvi).

    • @capitanvita
      @capitanvita 2 года назад +5

      @@GetTheCookie wow, grazie mille per l'immediata risposta esaustiva!

  • @gabrielenobile498
    @gabrielenobile498 3 года назад +75

    studio informatica all'unito, sei più chiaro di qualsiasi prof o tutorial di un indiano con microfono gracchiante. Bravo

  • @margheritadovidio1204
    @margheritadovidio1204 2 года назад +3

    Grazie.

  • @matteomartinconsole8351
    @matteomartinconsole8351 9 месяцев назад +3

    In poco più di 10 minuti sei riuscito a spiegare in maniera chiara ciò che il mio professore di università cercava di fare da 4 lezioni, sei davvero bravo, hai reso chiaro e facile un argomento complicato (per un principiante come me almeno). Quando qualcuno è preparato ed ha passione riesce a trasmetterla senza problemi, complimenti!

    • @GetTheCookie
      @GetTheCookie  9 месяцев назад +1

      Grazie mille per le belle parole. Fa sempre piacere leggere commenti di questo tipo!

  • @HsDL_Galand
    @HsDL_Galand 2 года назад +9

    Qualche giorno prima del parziale di Programmazione 1 sui puntatori, ho visto questo video per ripassare e chiarirmi le idee; e direi che ha funzionato, spiegazione eccellente, bravi ragazzi, grazie a voi ho preso 32/33

    • @GetTheCookie
      @GetTheCookie  2 года назад +2

      Grazie a te per il commento!
      Fa sempre piacere leggere cose di questo tipo

  • @mandante671
    @mandante671 4 года назад +14

    Frequento la facoltà di informatica applicata da qualche mese, ma questi video aiutano molto di più di una registrazione di 2-4 ore di lezione. Bravi ragazzi, continuate così!

    • @GetTheCookie
      @GetTheCookie  4 года назад +4

      È un piacere leggere commenti di questo tipo. Ti ringrazio.

  • @lucanick5
    @lucanick5 5 дней назад

    Grazie mille per la spiegazione, sei stato super chiaro!

  • @tonyflash1498
    @tonyflash1498 Год назад

    Grazie mille per questo video, sei stato piu utile tu che due ore al giorno per 3 giorni a settimana di vecchi falliti frustrati e sottopagati che non fanno altro che far uscire aria dalla bocca 👍

  • @eliosormani9401
    @eliosormani9401 3 года назад +5

    finalmente una spiegazione semplice ma dettagliata :mi ha chiarito veramente le idee .Grazie

  • @camilaambelcarrizo4704
    @camilaambelcarrizo4704 Год назад

    No vabbè!!! Ma sei stavo veramente bravo!!!! Ti ringrazio molto questo aiuto e questo video, sei stato non chiaro chiarissimo, dimostri che questo ti piace moltissimo e lo fai notare facendolo capire. Ti auguro il meglio!! :D

  • @michelegrazianomarino4062
    @michelegrazianomarino4062 2 года назад +1

    Complimenti ragazzi mi è tutto chiaro... Grazie mille... Ragazzi perseverate e credete in ciò che fate non mollate... Siete i migliori

    • @GetTheCookie
      @GetTheCookie  2 года назад +1

      Grazie mille per il commento :)

  • @jeffbezos3942
    @jeffbezos3942 3 года назад +2

    Veramente chiaro,complimenti per i capelli freschi

  • @skankhan8068
    @skankhan8068 3 года назад

    bro grazie cazzarola, sei super bravo e mi hai aiutato a capire sta roba in 10 minuti invece di sbattere la testa contro il libro

  • @gaetanooliva6232
    @gaetanooliva6232 2 года назад

    complimenti, semplicità che lascia senza parole

  • @Nino-rr5tn
    @Nino-rr5tn 2 года назад

    Complimenti !! spiegazione dettagliata e molto comprensibile.

  • @matteomarrani2561
    @matteomarrani2561 2 года назад

    continuate così, siete la mia attuale salvezza da ore ed ore di paroloni e spiegazioni infinite all'università :)

  • @auroradimalta9405
    @auroradimalta9405 Год назад

    Letteralmente salvavita. Grazie.

  • @ivonneciocia4908
    @ivonneciocia4908 2 года назад

    Spiegazione davvero eccezionale, sto avendo davvero grossi problemi con i puntatori sono davvero contenta di aver trovato questo video, continua cosi!! aspetto altri video.😊

  • @thatsrux0234
    @thatsrux0234 3 года назад

    video utilissimo, davvero complimenti sei riuscito a chiarire tutti i dubbi che mi aveva lasciato il prof di programmazione!

  • @Federico41203
    @Federico41203 2 года назад

    Complimenti, argomento spiegato benissimo senza pesare sull'attenzione

  • @Bomberazz1
    @Bomberazz1 3 года назад

    fenomenale, chiarissimo, pulito e diretto!

  • @Alessio_Leo
    @Alessio_Leo Год назад

    tu meriti un like e follow già solo per le bottiglie dei perk di black ops

  • @michelepollidoro1474
    @michelepollidoro1474 2 года назад

    grazie, spieghi molto bene

  • @salvatoredicaprio265
    @salvatoredicaprio265 2 года назад +2

    Bellissimo video, super limpido, comprensibile e fruibile MA QUEL PIKACHU QUEL DANNATO PIKACHU

    • @GetTheCookie
      @GetTheCookie  2 года назад +1

      Lo prendiamo come un segno di stima :)

  • @motivazione_vincente8020
    @motivazione_vincente8020 4 года назад +2

    grandi ragazzi ho l'esame il 14 aspetto altri video ;)

  • @edoardoraccanello9938
    @edoardoraccanello9938 2 года назад

    Complimenti, bellissima spiegazione: semplice ed esaustiva. Che editor usate nel video?

    • @GetTheCookie
      @GetTheCookie  2 года назад +1

      Grazie!
      L'IDE che utilizziamo è CLion

  • @gioint3890
    @gioint3890 11 месяцев назад +1

    Per quanto riguarda malloc e alloc hai qualche consiglio? Non ho proprio capito a cosa servano

    • @GetTheCookie
      @GetTheCookie  11 месяцев назад

      Ci abbiamo realizzato un video apposta, lo trovi nella playlist

    • @gioint3890
      @gioint3890 11 месяцев назад

      @@GetTheCookie grazie ragazzi, invece sempre per esercizi un po più tosti su puntatori struct e file avete qualcosa o qualche consiglio? Ho iniziato a approcciarmi all informatica quest anno ma c ho sempre capito ben poco

    • @gioint3890
      @gioint3890 11 месяцев назад

      Mi rimangio tutto, appena trovata la playlist con tutto quanto. Grazie

  • @ignaziosperandeo7347
    @ignaziosperandeo7347 2 года назад

    Ciao, scusami una cosa al minuto 12:07 affermi che *p1 = *p2 ma precedentemente hai detto che nell'indirizzo di memoria che punta alla cella di p2 gli dai 5, perchè al minuto 12:07 se assegni il valore della alla cella p1 il valore della cella p2 da 7? non dovrebbe essere 5 dato che è stato modificato precedentemente?

    • @GetTheCookie
      @GetTheCookie  2 года назад +2

      Ciao, in realtà i due esempi a cui ti riferisci partono entrambi dalla stessa situazione (che è quella rappresentata a sinistra), ma sono tra loro distinti

    • @ignaziosperandeo7347
      @ignaziosperandeo7347 2 года назад +1

      @@GetTheCookie ok grazie.

  • @antoniosantoro637
    @antoniosantoro637 8 месяцев назад

    ciao, tutto molto chiaro ma al minuto 7:25 si vedono i due indirizzi di memoria, non capisco perchè gli indirizzi differiscono solo di 1 numero tra le variabili c ed i.. la variabile i contiene 4 byte, dovrebbe occupare 4 celle di memoria no?

    • @GetTheCookie
      @GetTheCookie  7 месяцев назад

      Ciao, tutto dipende da come vengono memorizzate le variabili in memoria. In questo caso sono memorizzate in celle contigue quindi "vicine" e per tale motivo i loro indirizzi differiscono di 1. Per il secondo dubbio invece ricorda che stampando il valore di un puntatore, otteremo l'indirizzo della PRIMA cella occupata dalla variabile puntata. Pertanto, sebbene come dici tu un intero occupa 4 byte (in un architettura a 32 bit), l'indirizzo che stampiamo sarà solo il primo occupato.

  • @mattia281
    @mattia281 3 года назад

    bellissimo video spiegazione molto chiara complimenti, mi chiedevo se farai altri video anche su altri linguaggi informatici

    • @GetTheCookie
      @GetTheCookie  3 года назад

      Grazie!
      Per ora vogliamo concludere gli ultimi argomenti sul C, in futuro sicuramente faremo video su altri argomenti e altri linguaggi

  • @angelo77bis
    @angelo77bis 3 года назад

    mi complimento, spiegazione CHIARISSIMA.

  • @mattia5980
    @mattia5980 2 года назад

    verso il minuto 5:00, quando mostri che il puntatore a Char e il puntatore ad int occupano entrambi 8 byte, ciò si ha perchè stai usando un sistema a 64bit?
    Comunque studio a ingegneria informatica unibo, nulla togliere ai miei prof, ma questo argomento lo hai spiegato di gran lunga meglio tu

  • @LorenzoMalvezziofficial
    @LorenzoMalvezziofficial 2 года назад

    bravissimi

  • @alexandrialibrary8152
    @alexandrialibrary8152 3 года назад +1

    Bravo, ottima spiegazione per un argomento che non è sempre così facile comprendere, iscritto e campanella.
    Autodidatta o percorso universitario ?
    Permettimi un'altra domanda, che cosa si realizza più di frequente con il linguaggio C in ambito lavorativo ? Escludendo firmware per varie apparecchiature e centraline con un pizzico di assembly.
    Grazie e continua/te così \(^__^)

    • @GetTheCookie
      @GetTheCookie  3 года назад +2

      Ciao, innanzi tutto grazie per le belle parole, fa sempre piacere ricevere commenti di questo tipo :)
      Per rispondere alla tua prima domanda si, siamo entrambi studenti universitari di sicurezza e ingegneria informatica.
      Per quanto riguarda l'altra domanda il linguaggio C risulta essere uno strumento perfetto per comprendere le basi della programmazione tuttavia, escludendo le ipotesi che hai fornito tu, è difficile ritrovarsi a dover programmare con questo linguaggio nel mondo del lavoro.

  • @vickvolpe
    @vickvolpe 2 года назад

    Come si chiama l'ide che usi?inoltre faresti delle lezioni sui design pattern in c++?

  • @claudiosilvestri8485
    @claudiosilvestri8485 2 года назад

    Ciao, ascolta mi sapresti dire quale sia la differenza tra il C vecchio stile e il C11 ? Se dovessi programmare in C11 utilizzando un libro sulla vecchia versione del C per esempio il C89 o C99 potrei farlo?

  • @antoniocaruso6930
    @antoniocaruso6930 Год назад

    avete fatto un video anche sulle union in c
    ?

    • @GetTheCookie
      @GetTheCookie  Год назад

      Purtroppo no. Nella playlist dedicata al linguaggio C puoi trovare svariati argomenti, ma non le union.

  • @j9morris
    @j9morris 3 года назад

    Ciao Get the Cookie spiegazione chiarissima sui puntatori, ma oltre a conoscere l'indirizzo di memoria di una variabile e passare un valore per riferimento in quale contesto si possono usare? Grazie per la risposta.

    • @GetTheCookie
      @GetTheCookie  3 года назад

      I puntatori risultano utili, oltre a come dici tu per passare valori per riferimento, anche per tutte quelle cose che devono agire a basso livello, o per la gestione di strutture dati quali liste concatenate, alberi, grafi, hash table etc…
      Insomma se utilizzati in modo semplice (come in questo video) possono sembrare un “giochino” inutile, ma più si approfondisce il linguaggio C, più si potrà capire quanto davvero siano fondamentali.

  • @liamrampi8888
    @liamrampi8888 29 дней назад

    dovrei studiare per la verifica sui puntatori di lunedì ma ero troppo concentrato a guardare le pere di zombies nell'angolo

    • @GetTheCookie
      @GetTheCookie  28 дней назад

      Per veri intenditori… in bocca al lupo per la verifica!

  • @mirkozironi1194
    @mirkozironi1194 2 года назад +1

    che IDE usi?

    • @GetTheCookie
      @GetTheCookie  2 года назад +1

      In questo video ho utilizzato CLion

  • @marcodonadonii
    @marcodonadonii Год назад

    Dove hai comprato le boccette di call of duty?

    • @GetTheCookie
      @GetTheCookie  Год назад

      Da qualche parte su Amazon, credo ora non siano più disponibili :(

  • @cioccarellimi
    @cioccarellimi 4 года назад +4

    pikachuuu

  • @nicholas3895
    @nicholas3895 3 года назад

    Di tutti i video che sto vedendo su 'sti puntatori, non ce n'è uno che mi spiega a cosa servono. Okay, vengono utilizzati per puntare ad una cella, e poi? Cosa me ne faccio di questa possibilità?

    • @GetTheCookie
      @GetTheCookie  3 года назад

      Non ce n'è uno che ti spiega a cosa servono perché i nostri video illustrano in profondità le funzionalità teoriche dei puntatori, come parte integrante del linguaggio C.
      Le applicazioni pratiche non sono contemplate perché sono varie, specifiche e hanno rilevanza teorica minore, dato che il punto critico è fare capire come funzionano.
      E una volta capito quello con precisione, le applicazioni pratiche seguono naturalmente.

  • @miloskovacevic4085
    @miloskovacevic4085 3 года назад

    Riusciresti a dirmi che compilatore usi?

    • @GetTheCookie
      @GetTheCookie  3 года назад

      Se intendi IDE in questo video utilizzo Clion.
      Se invece intendi proprio il compilatore proprio è gcc

  • @davidecina1981
    @davidecina1981 3 года назад

    come si chiama il puntatore

    • @GetTheCookie
      @GetTheCookie  3 года назад

      Non capisco molto il senso della domanda, potresti esser più preciso?

  • @jeffbezos3942
    @jeffbezos3942 3 года назад +1

    Scusate la domanda,ma che minchia servono sti puntatori e perchè bisognerebbe usarli?Comunque bellissimo video

    • @GetTheCookie
      @GetTheCookie  3 года назад +2

      Questa è una bella domanda. In realtà molti linguaggi ad alto livello non hanno variabili di tipo puntatore, per quanto riguarda il C vengono utilizzati principalmente per due scopi:
      - Passare una variabile per riferimento, ovvero per permettere ad una funzione di lavorare direttamente su una variabile passata, e non su una copia.
      - L'altro utilizzo è proprio per lavorare a basso livello, quindi a stretto contatto con la memoria, ad esempio per allocare variabili nella memoria dinamica, su questo puoi trovare un video apposito che abbiamo realizzato che si chiama "Allocazione dinamica"

    • @jeffbezos3942
      @jeffbezos3942 3 года назад

      @@GetTheCookie perfetto grazie!

  • @justendeavor
    @justendeavor 11 месяцев назад

    Ha per caso dei video che trattano il C da zero?

    • @GetTheCookie
      @GetTheCookie  11 месяцев назад

      Se intende da zero in senso teorico per esempio "cosa è una variabile", "cosa è un ciclo for", etc... allora no, non abbiamo video dedicati a ciò.
      Tuttavia, può trovare nella playlist sul linguaggio C video che spiegano praticamente ogni altro argomento che può essere utile nella programmazione con questo linguaggio.

    • @justendeavor
      @justendeavor 11 месяцев назад

      @@GetTheCookie certo la ringrazio. Nuovo iscritto, continua cosi❤️

  • @teembel9879
    @teembel9879 2 года назад

    bel video, ma sicuro che sia C, perchè io stundiandolo quello che scrive è leggermente diverso

    • @GetTheCookie
      @GetTheCookie  2 года назад +1

      Grazie! Ti rigiro la domanda, tu sei sicuro di star studiando C?

  • @antonioligrani4542
    @antonioligrani4542 3 года назад

    Riusciresti ad ingrandire la porzione del video? Purtroppo da cellulare non si riesce a leggere bene quello che scrivi. Comunque bravo ottimi tutorial.

    • @GetTheCookie
      @GetTheCookie  3 года назад +2

      Grazie per la segnalazione, purtroppo è una cosa che ci hanno suggerito anche altri utenti, dai prossimi video cercheremo di aumentare la dimensione dei caratteri.

    • @scriba4609
      @scriba4609 3 года назад

      @@GetTheCookie se puoi metti lo sfondo bianco