Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    239

    [C++] un po di confusione da principiante

    Ciao a tutti

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

    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:

  2. #2
    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.

  3. #3
    p.s. naturalmente con i++, i diventa 2 se prima i è =1

    nel caso i fosse 0.2
    i++ diventerebbe 1.2

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    40
    (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

  5. #5
    Ma pensaci diamine.. Puoi assegnare un numero ad un altro numero? Puoi fare 1 = 2?

    Connetti, prima.

  6. #6
    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.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    40
    >> 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'

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.