|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
[C++] Dubbio
queste due dichiarazioni non dovrebbero essere identiche?
Codice:
int *m, *n; Codice:
int* m, n; |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Non lo sono, la prima equivale a
int *m; int n; la seconda int *m; int *n; |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
grazie lorenzo.
visto che ci sono: Codice:
void foo1(int &a)
{
...
}
es. Codice:
int *x; int a; x = &a; foo1(x); |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quella è una funzione che accetta in ingresso un riferimento. Codice:
int a = 0; foo1(a); |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
penso di aver capito ora, quindi quel parametro della funzione int &a all'interno del corpo della funzione si comporta come se fosse un puntatore.
Codice:
void foo1(int *a)
{
...
}
l'indirizzo di una variabile? Ultima modifica di sharkkk : 14-01-2014 alle 14:30. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3884
|
i passaggi in c sono solo per valore quelli per riferimento sono simulati
nella scrittura che hai scritto passi il puntatore al primo valore di a |
|
|
|
|
|
#7 | |||
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Quote:
Quote:
int a[5] = { 1, 2, 3, 4, 5 }; foo1(a); // ok foo1(a[2]); // errore foo1(&a[2]); // ok |
|||
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
grazie mille per le risposte che mi avete dato tutti quanti, mi avete chiarito moltissime cose.
stavo provando a usare l'operatore & come parametro della funzione foo1(int &a) ma in c mi da errore, mentre in c++ no. il gcc compila solo in c o è possibile anche compilare in c++? (e magari anche compilare altri linguaggi di programmazione? [ma è solo una curiosità]) |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Il C non ha le reference
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
quindi la e commerciale ( & ) è chiamata operatore di referenziazione immagino
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Codice:
int a = 6; int& b = a; int& c = 4; //errore: 4 è un int temporaneo senza nome, una Reference non può puntare ad esso. int& d = rand(); //errore: anche i valori di ritorno delle funzioni sono dei temporanei (anche detti r-Value) Scusa la pappardella ma è indirizzata al giovane padawan, non a te |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:44.




















