PDA

Visualizza la versione completa : [C++] puntatore non modifica variabile


signoredeltempo
01-09-2012, 14:22
Salve,

Ho una funzione che prende come parametro un puntatore ad int. Quando vado ad effettuare un operazione, il valore non viene modificato.
Nello specifico (mettendo che il puntatore sia *numero): *numero%10.
E' vero che per modificare il valore bisogna usare =, infatti se io facessi *numero = 12, funziona senza problemi.
Però vorrei sapere come effettuare un %10. Ecco il codice:


#include <iostream>
using std::cout;
using std::endl;
using std::cin;

void impostaCifre(int*, int*);

int main()
{

int array[30], cifra;
cout << "Inserisci una cifra: " << endl;
cin >> cifra;
int *cifra_ptr = &cifra;
impostaCifre(array, cifra_ptr);

return 0;
}

void impostaCifre(int *array, int *cifra)
{
*cifra%10;
cout << *cifra << endl;




}

So che è una domanda banale, forse conosco la risposta ma non mi viene in mente...

Buona giornata.

YuYevon
01-09-2012, 14:35
Originariamente inviato da signoredeltempo
Nello specifico (mettendo che il puntatore sia *numero): *numero%10.
E' vero che per modificare il valore bisogna usare =, infatti se io facessi *numero = 12, funziona senza problemi.


Metti insieme le due cose e hai risolto.

signoredeltempo
01-09-2012, 14:37
Intendi *numero %=10?

signoredeltempo
01-09-2012, 14:39
Ho risolto, mi sembrava strano perchè inizialmente ho provato %= 10, però mi ha dato un numero (da me) non previsto.
A livello teorico, perchè non si può fare *numero%10?

YuYevon
01-09-2012, 14:46
Perché stai facendo un'operazione senza salvarne il risultato da nessuna parte.
Alcuni compilatori, con appositi livelli di warning impostati, potrebbero anche segnalartelo. Il gcc ad esempio lo fa con -Wall:



warning: statement with no effect

Loading