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
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).
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!
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
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ì!
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 👍
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
Spiegazione davvero eccezionale, sto avendo davvero grossi problemi con i puntatori sono davvero contenta di aver trovato questo video, continua cosi!! aspetto altri video.😊
@@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
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ì \(^__^)
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.
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?
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?
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.
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.
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.
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
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?
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
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à?
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.
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"
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.
Riusciresti ad ingrandire la porzione del video? Purtroppo da cellulare non si riesce a leggere bene quello che scrivi. Comunque bravo ottimi tutorial.
Grazie per la segnalazione, purtroppo è una cosa che ci hanno suggerito anche altri utenti, dai prossimi video cercheremo di aumentare la dimensione dei caratteri.
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
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).
@@GetTheCookie wow, grazie mille per l'immediata risposta esaustiva!
studio informatica all'unito, sei più chiaro di qualsiasi prof o tutorial di un indiano con microfono gracchiante. Bravo
compa’
eccoci qua
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!
Grazie mille per le belle parole. Fa sempre piacere leggere commenti di questo tipo!
Grazie.
Grazie a te :)
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
Grazie a te per il commento!
Fa sempre piacere leggere cose di questo tipo
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ì!
È un piacere leggere commenti di questo tipo. Ti ringrazio.
finalmente una spiegazione semplice ma dettagliata :mi ha chiarito veramente le idee .Grazie
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 👍
Complimenti ragazzi mi è tutto chiaro... Grazie mille... Ragazzi perseverate e credete in ciò che fate non mollate... Siete i migliori
Grazie mille per il commento :)
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
Grazie mille per le belle parole :)
Veramente chiaro,complimenti per i capelli freschi
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
Complimenti !! spiegazione dettagliata e molto comprensibile.
complimenti, semplicità che lascia senza parole
continuate così, siete la mia attuale salvezza da ore ed ore di paroloni e spiegazioni infinite all'università :)
Spiegazione davvero eccezionale, sto avendo davvero grossi problemi con i puntatori sono davvero contenta di aver trovato questo video, continua cosi!! aspetto altri video.😊
Complimenti, argomento spiegato benissimo senza pesare sull'attenzione
video utilissimo, davvero complimenti sei riuscito a chiarire tutti i dubbi che mi aveva lasciato il prof di programmazione!
Letteralmente salvavita. Grazie.
Felici di aver aiutato!
fenomenale, chiarissimo, pulito e diretto!
Bellissimo video, super limpido, comprensibile e fruibile MA QUEL PIKACHU QUEL DANNATO PIKACHU
Lo prendiamo come un segno di stima :)
grazie, spieghi molto bene
grandi ragazzi ho l'esame il 14 aspetto altri video ;)
tu meriti un like e follow già solo per le bottiglie dei perk di black ops
mi complimento, spiegazione CHIARISSIMA.
Per quanto riguarda malloc e alloc hai qualche consiglio? Non ho proprio capito a cosa servano
Ci abbiamo realizzato un video apposta, lo trovi nella playlist
@@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
Mi rimangio tutto, appena trovata la playlist con tutto quanto. Grazie
bellissimo video spiegazione molto chiara complimenti, mi chiedevo se farai altri video anche su altri linguaggi informatici
Grazie!
Per ora vogliamo concludere gli ultimi argomenti sul C, in futuro sicuramente faremo video su altri argomenti e altri linguaggi
Complimenti, bellissima spiegazione: semplice ed esaustiva. Che editor usate nel video?
Grazie!
L'IDE che utilizziamo è CLion
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ì \(^__^)
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.
Come si chiama l'ide che usi?inoltre faresti delle lezioni sui design pattern in c++?
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?
bravissimi
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?
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.
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.
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.
avete fatto un video anche sulle union in c
?
Purtroppo no. Nella playlist dedicata al linguaggio C puoi trovare svariati argomenti, ma non le union.
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
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?
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
@@GetTheCookie ok grazie.
pikachuuu
che IDE usi?
In questo video ho utilizzato CLion
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à?
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.
Dove hai comprato le boccette di call of duty?
Da qualche parte su Amazon, credo ora non siano più disponibili :(
dovrei studiare per la verifica sui puntatori di lunedì ma ero troppo concentrato a guardare le pere di zombies nell'angolo
Per veri intenditori… in bocca al lupo per la verifica!
Scusate la domanda,ma che minchia servono sti puntatori e perchè bisognerebbe usarli?Comunque bellissimo video
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"
@@GetTheCookie perfetto grazie!
come si chiama il puntatore
Non capisco molto il senso della domanda, potresti esser più preciso?
Riusciresti a dirmi che compilatore usi?
Se intendi IDE in questo video utilizzo Clion.
Se invece intendi proprio il compilatore proprio è gcc
Ha per caso dei video che trattano il C da zero?
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.
@@GetTheCookie certo la ringrazio. Nuovo iscritto, continua cosi❤️
bel video, ma sicuro che sia C, perchè io stundiandolo quello che scrive è leggermente diverso
Grazie! Ti rigiro la domanda, tu sei sicuro di star studiando C?
Riusciresti ad ingrandire la porzione del video? Purtroppo da cellulare non si riesce a leggere bene quello che scrivi. Comunque bravo ottimi tutorial.
Grazie per la segnalazione, purtroppo è una cosa che ci hanno suggerito anche altri utenti, dai prossimi video cercheremo di aumentare la dimensione dei caratteri.
@@GetTheCookie se puoi metti lo sfondo bianco