PDA

Visualizza la versione completa : [C++] un po di confusione da principiante


Maxx_ale
17-11-2002, 13:50
Ciao a tutti

Per il momento sto studiando all'universitÓ il C++, e durante un'esercitazione mi sono imbattuto in un dubbio. :confused:

Cosa succede se scrivo:
int i = 0, 1 = 2;

e poi:
i = i + 1;

La variabile "i" assume il valore "1" o "2"?
Questa Ŕ una generalizzazione del mio vero problema e vi sarei grato se mi rispondeste tenendo conto che sono ancora alle basi

:gren:

Johnny_Depp
17-11-2002, 14:26
Cosa succede se scrivo:
int i = 0, 1 = 2;
succede che ti da 3 errori
1)non puoi dichiarare una variabile di tipo int ed assegnargli un valore (in virgola mobile) double
2)la virgola si indica con un punto . i=0.1
3)non puoi aggegnare ad una variabile 2 valori contemporaneamente

la giusta forma sarebbe stata:

double i=0.2, j=12.9, k=30.5;
i=j=k; //assegni il valore di k a j che a sua volta lo assegna a i
/* ERRORE = i = 20.5 = 30.5 = 40.9; */
cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl;

e poi:
i = i + 1;
La variabile "i" assume il valore "1" o "2"?
Questa Ŕ una generalizzazione del mio vero problema e vi sarei grato se mi rispondeste tenendo conto che sono ancora alle basi
tu che pensi?

i=i+1 //=2

cmq in c/c++ si scrive semplicemente i++

consulta qualche guida tanto per capire le basi, su internet ce ne sono moltissime e molte sono in italiano.

Johnny_Depp
17-11-2002, 14:30
p.s. naturalmente con i++, i diventa 2 se prima i Ŕ =1

nel caso i fosse 0.2
i++ diventerebbe 1.2

mildred
17-11-2002, 17:47
(perchŔ non ci dici il vero problema?)

l'unico errore che ottieni, essendo l'istruzione

int i = 0, 1 = 2;

una dichiarazione di variabile, Ŕ un errore di sintassi e basta (parse error before `1')

sia che la dischiaraizione sia di tipo int che di tipo double o float, infatti:

int i = 0, j = 2;

compila perfettamente

r0x
17-11-2002, 19:38
Ma pensaci diamine.. Puoi assegnare un numero ad un altro numero? Puoi fare 1 = 2?

Connetti, prima.

Andrea Simonassi
17-11-2002, 21:30
Si imporrebbe un ripasso sugli l-value....

un'espressione di assegnazione richiede che l'operando sinistro sia un l-value, ovvero un espressione che si riferisce ad un oggetto con un indirizzo. 1 non e' un oggetto che ha un indirizzo in memoria, quindi non puo ricevere il valore di alcuna espressione.

mildred
18-11-2002, 09:41
>> Ma pensaci diamine.. Puoi assegnare un numero ad un altro numero?
>> Puoi fare 1 = 2?
>>
>> Connetti, prima.

se ti riferivi a me, prima di fare il gradasso leggi bene:

"Questa Ŕ una generalizzazione del mio vero problema..."

magari il suo problema Ŕ un'altro. chi lo sa?
per:

int i = 0, 1 = 2;

Ŕ solo un problema di l-value.

poi basta semplicemente mandare in compilazione il codice e vedere l'errore che ti da il compilatore: parse error before '1'

Loading