Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-03-2007, 15:48   #1
Predator Hunter
Senior Member
 
Iscritto dal: Jun 2002
Città: Roma
Messaggi: 795
Regole di Buona Programmazione C

Ciao a tutti

volendo esaminare un programma a oggetti e decidere se è ben fatto ho vari parametri su cui applicare metriche... coesione, accoppiamento, modularità, incapsulamento ecc

volendo fare la stessa cosa su un programma C, per esempio, cosa dovrei andare a guardare? prescindendo dalle regole tipo indentare, commentare, nomi intelligenti di variabili mi servirebbe qualcosa da cui poter estrapolare qualche metrica o, addirittura, qualche metrica già pronta.

Sapete darmi un ?

thank you!
__________________
PC: Pentium dual core E5200 su ASUS P5K SEe/EPU, 2GB ram, Nvidia GeForce 9600 GSO, Hdd Western Digital 500Gb, .....
Predator Hunter è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 16:42   #2
Brady
Member
 
Iscritto dal: May 2004
Città: Treviso
Messaggi: 154
Potresti spiegarti meglio?
Nel senso...cosa ti interessa sapere di preciso? Quali sono alcune buone norme di programmazione pulita e leggibile?
Brady è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 16:46   #3
mapomapo
Senior Member
 
L'Avatar di mapomapo
 
Iscritto dal: May 2005
Città: Bari
Messaggi: 349
innanzitutto vedrei i prototipi delle funzioni...un'occhiata veloce al main per vedere se è "snello" e subito un salto alle definizioni delle funz....immediatamente un esame delle variabili...vedere se sono giusti i passaggi (riferimento o valore)..vedere se sono superflui alcuni puntatori...
per il resto non credo si possa veder molto..

Vito
__________________
Si può vincere una guerra in due...o forse anche da solo. Si può estrarre il cuore anche al più nero assassino, ma è più difficile cambiare un'idea!
mapomapo è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 16:47   #4
Predator Hunter
Senior Member
 
Iscritto dal: Jun 2002
Città: Roma
Messaggi: 795
io ti dò il codice sorgente di un sw

e tu da quello devi vedere se è stato ben scritto. però non a livello di indentazione ma a livello di progettazione

per esempio in un OO vai a vedere le classi come sono fatte, l'incapsulamento, la modularità e tutti i vari (conosciutissimi) parametri di buona programmazione OO.

per un non OO come il C però mi trovo in difficoltà



grazie per l'interessamento
__________________
PC: Pentium dual core E5200 su ASUS P5K SEe/EPU, 2GB ram, Nvidia GeForce 9600 GSO, Hdd Western Digital 500Gb, .....
Predator Hunter è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 16:47   #5
Predator Hunter
Senior Member
 
Iscritto dal: Jun 2002
Città: Roma
Messaggi: 795
Quote:
Originariamente inviato da mapomapo Guarda i messaggi
innanzitutto vedrei i prototipi delle funzioni...un'occhiata veloce al main per vedere se è "snello" e subito un salto alle definizioni delle funz....immediatamente un esame delle variabili...vedere se sono giusti i passaggi (riferimento o valore)..vedere se sono superflui alcuni puntatori...
per il resto non credo si possa veder molto..

Vito

ti ringrazio, qualche pista me l'hai data
__________________
PC: Pentium dual core E5200 su ASUS P5K SEe/EPU, 2GB ram, Nvidia GeForce 9600 GSO, Hdd Western Digital 500Gb, .....
Predator Hunter è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 18:29   #6
Brady
Member
 
Iscritto dal: May 2004
Città: Treviso
Messaggi: 154
Sono proprio tordo!
Beh sì, come detto da mapomapo, controlla bene il passaggio parametri alle funzioni, ma verifica anche la correttezza del tipo di ritorno.
Aggiungerei di fare molta attenzione ai puntatori e all'uso che ne fai. Se utilizzi la new per allocare variabili dinamicamente sullo heap, ricordati che poi dovrai disalloccarle! Non è per nulla buona cosa lasciare spazzatura!
Sempre riguardo ai puntatori (e anche a ciò che fai restituire dalle funzioni), attento ai puntatori penzolanti, ovvero che puntano ad aree di memoria che vengono disallocate.
Attento anche a rispettare i limiti degli eventuali array.

In genere è da evitarsi l'utilizzo dei break o diciture simili, che possono rendere il codice più imprevedibile, incontrollabile e meno leggibile.

Di buona norma viene anche insegnato l'utilizzo di variabili di appoggio per controllare meglio alcune situazioni come per esempio l'uscita da un ciclo...anche se a volte, a mio parere, può andare un po' a scapito dell'ottimizzazione.

Altra buona cosa è appunto l'ottimizzazione del codice, ma questo è un passo in più che viene dopo (o con) la correttezza. In ogni caso, al di là dei commenti, è importante che il codice sia leggibile! L'ottimizzaione può aiutare in questo, ma a volte può anche rendere più difficoltoso il tutto.

Se mi viene in mente altro te lo dico... spero intanto di non averti detto banalità.

Ciaooo
Brady è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 19:11   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
Quote:
Originariamente inviato da mapomapo Guarda i messaggi
vedere se sono giusti i passaggi (riferimento o valore)..
piccola nota: il passaggio per riferimento in C non esiste, esiste per valore o per puntatore (a volte si chiama "per riferimento" quello per puntatore).

Quote:
per il resto non credo si possa veder molto..
io cercherei sostanzialmente di vedere se c'è codice inutile: variabili mai utilizzate, variabili scritte ma mai lette, tipi inutilizzati, costanti inutilizzate se è supportata la keyword const, macro inutilizzate, prototipi di funzioni senza la corrispondente implementazione (occhio alle librerie esterne ovviamente), funzioni mai chiamate, code paths irraggiungibili, funzioni chiamate solamente in code paths irraggiungibili, ed opzionalmente funzioni chiamate una volta sola (se sono chiamate una volta sola che ci sta a fare quel codice in una funzione a se stante? però certi programmatori preferiscono isolare certi pezzi di codice, quindi questa la metterei come opzionale). probabilmente si può fare anche di meglio, al momento non mi viene in mente null'altro di relativamente semplice, ma volendo complicare (di molto) le cose potresti definire per ciascuna funzione esterna nota (per esempio per ciascuna API Win32) un pattern che definisca quali valori vengono ritornati in quali casi e con quali input, così da poter predire meglio certi code paths basati sui valori ritornati da tali funzioni.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 00:15   #8
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da 71104 Guarda i messaggi
piccola nota: il passaggio per riferimento in C non esiste, esiste per valore o per puntatore (a volte si chiama "per riferimento" quello per puntatore).
Veramente il passaggio "per puntatore" si è sempre chiamato per "riferimento", dai tempi immemori della nascita del C. Tant'è che ottenere un valore da un puntatore si chiama "dereferencing", inoltre un puntatore null'altro è che un riferimento vero e proprio. Passaggio per riferimento e per puntatore sono la stessa identica cosa. "Per riferimento" si riferisce al concetto, "per puntatore" si riferisce all'implementazione, ma entrambe le notazioni definiscono sempre lo stesso concetto.

Ultima modifica di mjordan : 13-03-2007 alle 00:18.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 00:27   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
Quote:
Originariamente inviato da mjordan Guarda i messaggi
Veramente il passaggio "per puntatore" si è sempre chiamato per "riferimento", dai tempi immemori della nascita del C. Tant'è che ottenere un valore da un puntatore si chiama "dereferencing", inoltre un puntatore null'altro è che un riferimento vero e proprio. Passaggio per riferimento e per puntatore sono la stessa identica cosa. "Per riferimento" si riferisce al concetto, "per puntatore" si riferisce all'implementazione, ma entrambe le notazioni definiscono sempre lo stesso concetto.
non mi piace come terminologia, e non credevo che fosse così diffusa: crea confusione quando si viene a parlare di C++ e del passaggio "by reference" (quello con la &). l'uso di "reference" e "dereference" relativo ai puntatori lo conoscevo solo come verbi.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 00:30   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
altra cosa che mi è venuta in mente per testare la qualità di un sorgente: controllare che la convenzione di scrittura sia coerente. controllare che le parentesi graffe abbiano sempre la stessa posizione e indentazione rispetto al codice precedente e successivo, controllare che nei nomi delle variabili l'iniziale sia sempre o maiuscola o minuscola, controllare opzionalmente l'uso di prefissi ungheresi (dato che si parla di C...), controllare che i nomi di macro siano tutti maiuscoli, controllare l'uso coerente delle andature a capo (in particolare controllare che un ; di fine istruzione sia sempre seguito da un fine riga), eccetera eccetera.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 08:11   #11
Predator Hunter
Senior Member
 
Iscritto dal: Jun 2002
Città: Roma
Messaggi: 795
Grazie a tutti!!

avete confermato alcune mie idee e me ne avete date altre (preziose)

grazie 1000 davvero.

Per quanto in teoria il passaggio perpuntatore e riferimento sia qlc di diverso, a quanto ne so io, si tende a dare lo stesso significato ai due (per puntatore)

grazie ancora!!
__________________
PC: Pentium dual core E5200 su ASUS P5K SEe/EPU, 2GB ram, Nvidia GeForce 9600 GSO, Hdd Western Digital 500Gb, .....
Predator Hunter è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 08:28   #12
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
beh, veramente non è così. il passaggio per riferimento non esiste in C, esiste solo il passaggio per valore: che poi sia di un int o di un indirizzo (ossia, un puntatore) cambia solo l'effetto, ma il passaggio è esclusivamente per valore. leggi il K&R, ora non ce l'ho sottomano, però è espressamente scritto così dai creatori del C. Ciao.
Codice:
#include <stdio.h>

void swap(int * x, int * y)
{
	int temp;

	temp = *x;
	*x = *y;
	*y = temp;
}

int main(void)
{
	int i = 3, j = 5;

	printf("Prima di swap(): i = %d, j = %d\n", i, j);
	swap(&i, &j);
	printf("Dopo di swap(): i = %d, j = %d\n", i, j);

	return 0;
}
Io questo lo chiamo passaggio per riferimento
Non so cosa abbiano scritto K&R, comunque il loro "non esiste" significa che il C non ha una sintassi "dedicata" per il passaggio per riferimento (come ad esempio il pascal che distingue fra function e procedure) e che quindi si deve "realizzare" mediante i puntatori.
Chiamalo come ti pare, il passaggio per riferimento in C è possibile ergo esiste. Il loro "non esiste" probabilmente si riferisce a questioni implementative, che però a noi in questo caso non interessano (in fondo passare per valore un puntatore implica la non esistenza del riferimento ma la possibilità di ottenerlo in ogni caso).

In parole povere, meno teoria e piu' pratica

Ultima modifica di mjordan : 13-03-2007 alle 08:38.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 11:39   #13
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da mjordan Guarda i messaggi
Codice:
#include <stdio.h>

void swap(int * x, int * y)
{
	int temp;

	temp = *x;
	*x = *y;
	*y = temp;
}

int main(void)
{
	int i = 3, j = 5;

	printf("Prima di swap(): i = %d, j = %d\n", i, j);
	swap(&i, &j);
	printf("Dopo di swap(): i = %d, j = %d\n", i, j);

	return 0;
}
Io questo lo chiamo passaggio per riferimento
Non so cosa abbiano scritto K&R, comunque il loro "non esiste" significa che il C non ha una sintassi "dedicata" per il passaggio per riferimento (come ad esempio il pascal che distingue fra function e procedure) e che quindi si deve "realizzare" mediante i puntatori.
Chiamalo come ti pare, il passaggio per riferimento in C è possibile ergo esiste. Il loro "non esiste" probabilmente si riferisce a questioni implementative, che però a noi in questo caso non interessano (in fondo passare per valore un puntatore implica la non esistenza del riferimento ma la possibilità di ottenerlo in ogni caso).

In parole povere, meno teoria e piu' pratica
e poi quando vedi il passaggio di parametro con & in c++ come lo chiami?
passaggio per riferimento_v2.0?

e cmq tu passi il valore del puntatore, non un riferimento al puntatore. Non ci sono cazzi fra teoria e pratica.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 13:04   #14
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da thebol Guarda i messaggi
e poi quando vedi il passaggio di parametro con & in c++ come lo chiami?
passaggio per riferimento_v2.0?

e cmq tu passi il valore del puntatore, non un riferimento al puntatore. Non ci sono cazzi fra teoria e pratica.
vabbé, ma per distinguere questo
Codice:
   funzione( x );
dda questo ?
Codice:
   funzione( &x );
come fai ? io son d'accordo sul chiamarlo passaggio per indirizzo o per puntatore e non per riferimento per non confonderlo col C++, ma dire sempre per valore crea confusione.

EDIT: e comunque anche in C++, quando passi per riferimento, viene passato un valore. Che sia un indirizzo o un dato sempre valore é
Ma non penso che l'autore del 3d voleva discutere di questo
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve

Ultima modifica di trallallero : 13-03-2007 alle 13:06.
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 13:25   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
Quote:
Originariamente inviato da trallallero Guarda i messaggi
vabbé, ma per distinguere questo
Codice:
   funzione( x );
dda questo ?
Codice:
   funzione( &x );
come fai ?
allo stesso modo in cui distingui tra questi due:
Codice:
void funzione(int x);
Codice:
void funzione(float x);
sono semplicemente tipi diversi.

Quote:
EDIT: e comunque anche in C++, quando passi per riferimento, viene passato un valore. Che sia un indirizzo o un dato sempre valore é
sintatticamente no.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 13:31   #16
Brady
Member
 
Iscritto dal: May 2004
Città: Treviso
Messaggi: 154
Prima di tutto premetto che quando ho seguito il corso di Programmazione 1, ci è stato detto chiaramente "studieremo la parte C di C++", infatti spesso e volentieri ci è stata negata la possibilità di sfruttare alcune caratteristiche del c++. Tuttavia abbiamo studiato sia il passaggio per valore che quello per riferimento. (mi domando allora se sia realmente possibile o no utilizzare entrambi su c)

Bene, veniamo ai due tipi di passaggio parametri...

Passaggio per Valore:
1) Il passaggio per valore consiste nel passare alla funzione un valore o anche una espressione qualunque che ritorni un valore. La funzione riceverà appunto un valore attraverso il suo parametro formale, ma le modifiche apportate su di esso non avranno alcuna ripercussione all'esterno della funzione e muoriranno all'uscita da essa, perché fatte su una variabile locale alla funzione. L'unica speranza di trasmettere qualcosa all'esterno è sfruttare il return.

Quote:
int fun(int x) {
x=5;
return (x+2);
}

main() {
...
int y=10;
k = fun(y);
...
}
Alla fine del programma, y=10 e k=7, mentre x sarà morta all'uscita dalla funzione fun.


2) Sempre riguardo al passaggio per valore, è possibile passare per valore puntatori a variabili, attraverso dei quali la funzione potrà cambiare i valori delle variabili puntate. Ovviamente i parametri passati alla funzione dovranno rispettare i tipi, ovvero fornire un indirizzo!

Quote:
void scambia(int *a, int *b) {
int t;
t = *a; //dereferenzio per prendere il valore di a
*a = *b; //scambio i valori delle due variabili utilizzando la dereferenziazione dei puntatori
*b=t;
}

main() {
...
int x=10, y=20;
scambia(&x, &y); //devo passare l'indirizzo delle due variabili!!!
...
}
Dopo aver chiamato la funzione scambia, le due variabili x e y avranno valori invertiti, ovvero x=20 e y=10.
Da notare che dentro scambia, a e b sono due variabili locali della funzione, definite come puntatori ad interi che ricevono l'indirizzo di un intero.


Passaggio per Riferimento:
Lo stesso effetto che si ha sfruttando il passaggio per valore di un puntatore, lo si può ottenere con il passaggio di parametri per riferimento per avere side-effect sul chiamante della funzione. Ogni modifica fatta sui parametri formali della funzione,a vrà ripercussione sui parametri attuali passati alla funzione.

Quote:
void scambia(int &a, int &b) {
int t;
t = a;
a = b;
b=t;
}

main() {
...
int x=10, y=20;
scambia(x, y);
...
}
Da notare che a e b sono detti "alias" in quanto corrispondono esattamente alle variabili utilizzate durante il passaggio parametri alla funzione.


Osservazioni
Sebbene il passaggio per riferimento e quello per valore di puntatore, permettano di esercitare modifiche sulle variabili passate dal chiamante, sono in realtà due approcci molto diversi!
Tutto sta nel capire che una variabile è composta di due parti: l-valore ed r-valore. L' l-valore corrisponde all'indirizzo in memoria della variabile, ovvero ciò che ci permette di raggiungerla. L' r-valore è invece il contenuto vero e proprio della variabile.

int x=10; // r-valore=10, l-valore= un qualche indirizzo in memoria (0x****)

Quando si parla di puntatori, ecco che un puntatore è una variabile che ovviamente ha il suo l-valore, ma in cui l' r-valore contenuto in esso corrisponde ad un indirizzo in memoria di un'altra variabile, perciò un l-valore!!!

Concludendo
La differenza tra passaggio parametri per valore o per riferimento sta in fatti nel passare alla funzione un r-valore oppure un l-valore.
Nel caso del passaggio di un valore, la cosa è scontata. Nel caso del passaggio del valore di un puntatore, non si fa che passare appunto l' r-valore della variabile puntatore, che corrisponde poi ad un indirizzo in memoria.
Nel caso invece di passaggio per riferimento, si passa invece un l-valore.


Spero di essere stato esauriente... e scusate per la lunghezza
Brady è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 13:36   #17
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da 71104 Guarda i messaggi
allo stesso modo in cui distingui tra questi due:
Codice:
void funzione(int x);
Codice:
void funzione(float x);
sono semplicemente tipi diversi.
beh si, é vero ma fa molto piú phigo chiamarlo per indirizzo dai

Quote:
Originariamente inviato da 71104 Guarda i messaggi
sintatticamente no.
ma non stavate parlando di sintassi, é ovvio che quella é diversa
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 17:07   #18
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da trallallero Guarda i messaggi
EDIT: e comunque anche in C++, quando passi per riferimento, viene passato un valore. Che sia un indirizzo o un dato sempre valore é
Ma non penso che l'autore del 3d voleva discutere di questo
se passi per riferimento in c++, non passi il valore ma la variabile. Ha tutto un altro significato. Passi il contenitore del valore, non il valore.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 22:40   #19
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da thebol Guarda i messaggi
e cmq tu passi il valore del puntatore, non un riferimento al puntatore. Non ci sono cazzi fra teoria e pratica.
A questo punto ti chiedo che differenza c'è fra un puntatore e un riferimento. Un puntatore non è altro che un indirizzo di memoria, ovvero un riferimento ad un blocco di memoria che contiene un dato. Un "riferimento a un puntatore" non è altro che un puntatore a puntatore, ovvero un'indirettezza multipla pari a due. Sono curioso
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 23:26   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
Quote:
Originariamente inviato da mjordan Guarda i messaggi
A questo punto ti chiedo che differenza c'è fra un puntatore e un riferimento.
sintatticamente sono semplicemente due cose diverse. sintatticamente in C un riferimento non esiste neanche. ciò che tu riesci a trovare tra le due cose è solo una (corretta) analogia concettuale/funzionale. ma fermo rimane che parlare di riferimento in C crea confusione quando si introduce il discorso dei references in C++, e per questo sarebbe più corretto evitare le analogie concettuali e (giusto per rimanere sempre nell'ambito della più pratica e meno teoria) parlare solo in termini sintattici.
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
Driver più sicuri: Microsoft alza...
Ego Power+ ha la giusta accoppiata per l...
Scompiglio nei listini Amazon: prezzi im...
Sotto i 105€ il robot Lefant che lava, a...
Mini proiettori smart in offerta: uno co...
Smartwatch Amazfit in offerta: Balance o...
Windows XP ritorna: ecco come usarlo sub...
Arrow Lake in saldo: Intel taglia i prez...
LG C4 da 55'' a 899€ è il top per...
DJI Neo a 159€ è il mini drone pe...
Robot aspirapolvere DREAME D10 Plus Gen ...
A 109€ ha costretto Amazon a nuove scort...
Sbaraglia la concorrenza Intel, questo m...
Giappone all'attacco: ecco il primo wafe...
Cinema in Italia, svolta storica: arriva...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:16.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v