Salve,
ho la seguente variabile globale:
codice:int var;
la seguente funzione:
e il seguente codice nel main:codice:int funz(int x) { return x++; }
Vorrei alcune delucidazioni.codice:void main() { ... var = 1; k = funz(var); ... }
1)in teoria essendo "var" globale potevo non passarla alla funzione "funz" e semplicemente richiamarla dìlì dentro giusto?
2)"k" dovrebbe contenere 2, giusto?
3)"var" dovrebbe contenere 2 o 1?
La vera domanda è appunto al 3. Io sapevo che quando si dichiara una variabile globale, tutte le funzioni o blocchi che ne fanno uso non ne creano un'istanza locale ma di isatnza ne esiste solo una. Quindi nel caso precedente "var" viene aumentata di 1 dentro "funz" ma ciò vale per l'unica istanza esistente di "var" quindi la stessa "var" diventerà 2! O no? Sto sbagliando io? Le variabili globali sono semplicemente visibili a tutto il file ma ogni funzione se ne crea un'stanza locale?
grazie