Puntatori: Teoria ed Esercizi in C

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 84

  • @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

  • @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!

  • @margheritadovidio1204
    @margheritadovidio1204 2 роки тому +3

    Grazie.

  • @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.

  • @eliosormani9401
    @eliosormani9401 3 роки тому +5

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

  • @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 👍

  • @michelegrazianomarino4062
    @michelegrazianomarino4062 2 роки тому +1

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

  • @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

  • @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

  • @Nino-rr5tn
    @Nino-rr5tn 2 роки тому

    Complimenti !! spiegazione dettagliata e molto comprensibile.

  • @gaetanooliva6232
    @gaetanooliva6232 2 роки тому

    complimenti, semplicità che lascia senza parole

  • @matteomarrani2561
    @matteomarrani2561 2 роки тому

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

  • @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.😊

  • @Federico41203
    @Federico41203 2 роки тому

    Complimenti, argomento spiegato benissimo senza pesare sull'attenzione

  • @thatsrux0234
    @thatsrux0234 3 роки тому

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

  • @auroradimalta9405
    @auroradimalta9405 Рік тому

    Letteralmente salvavita. Grazie.

  • @Bomberazz1
    @Bomberazz1 3 роки тому

    fenomenale, chiarissimo, pulito e diretto!

  • @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 :)

  • @michelepollidoro1474
    @michelepollidoro1474 2 роки тому

    grazie, spieghi molto bene

  • @motivazione_vincente8020
    @motivazione_vincente8020 3 роки тому +2

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

  • @Alessio_Leo
    @Alessio_Leo Рік тому

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

  • @angelo77bis
    @angelo77bis 3 роки тому

    mi complimento, spiegazione CHIARISSIMA.

  • @gioint3890
    @gioint3890 10 місяців тому +1

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

    • @GetTheCookie
      @GetTheCookie  10 місяців тому

      Ci abbiamo realizzato un video apposta, lo trovi nella playlist

    • @gioint3890
      @gioint3890 10 місяців тому

      @@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 10 місяців тому

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

  • @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

  • @edoardoraccanello9938
    @edoardoraccanello9938 2 роки тому

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

    • @GetTheCookie
      @GetTheCookie  2 роки тому +1

      Grazie!
      L'IDE che utilizziamo è CLion

  • @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?

  • @LorenzoMalvezziofficial
    @LorenzoMalvezziofficial 2 роки тому

    bravissimi

  • @antoniosantoro637
    @antoniosantoro637 7 місяців тому

    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.

  • @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.

  • @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.

  • @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

  • @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.

  • @cioccarellimi
    @cioccarellimi 4 роки тому +4

    pikachuuu

  • @mirkozironi1194
    @mirkozironi1194 2 роки тому +1

    che IDE usi?

    • @GetTheCookie
      @GetTheCookie  2 роки тому +1

      In questo video ho utilizzato CLion

  • @nicholas3895
    @nicholas3895 2 роки тому

    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  2 роки тому

      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.

  • @marcodonadonii
    @marcodonadonii Рік тому

    Dove hai comprato le boccette di call of duty?

    • @GetTheCookie
      @GetTheCookie  Рік тому

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

  • @liamrampi8888
    @liamrampi8888 14 днів тому

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

    • @GetTheCookie
      @GetTheCookie  14 днів тому

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

  • @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!

  • @davidecina1981
    @davidecina1981 3 роки тому

    come si chiama il puntatore

    • @GetTheCookie
      @GetTheCookie  3 роки тому

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

  • @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

  • @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