PDA

Visualizza la versione completa : [C++] l-value,r-value...


unbreakable9
14-04-2008, 08:02
Salve gente!
Mi sono imbattuto in un problemino del genere:

char *args[]={"primo","secondo","terzo"};

a questo punto se faccio:

args++; (teoricamente dovrebbe restituire l'indirizzo del secondo puntatore ovvero &args[1])

Dev-C++ mi da questo errore: "ISO C++ forbids cast to non-reference type used as lvalue"

Qualcuno sa darmi una spiegazione? anche perch io da qualche parte questa cosa qui l'ho vista usare (per esempio qui: http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/ls.c.html) e gi che c' saprebbe darmi una PRECISA definizione di l-value e r-value? Grazie!

<---[EDIT]--->

Come non detto ho capito da solo:

int main(int argc,char *args[]){

args++;
...
}

cosi funziona,in quanto args un puntatore e non un array!

andbin
14-04-2008, 09:20
Originariamente inviato da unbreakable9
in quanto args un puntatore e non un array! Esatto. Un array definito in C/C++ con [] ha un indirizzo fisso che non pu cambiare durante l'esecuzione del programma.

Loading