Wyjaśnienie działania dekrementacji zmiennej lokalnej

0

Witam, mam pytanie odnośnie modyfikowania zmiennych lokalnych funkcji w pętli.

Załóżmy, że zmienna przekazywana do funkcji ma wartość 5. Przykładowy kod:

void function(int integer){
	// ...

	while (...){
	// ...
		--integer;
		printf("integer = %d", integer); //za każdym razem wyświetla integer = 4
	}
} 

oraz

void function(int integer){
	// ...

	int reinteger = integer;

	while (...){
	// ...
		--reinteger;
		printf("integer = %d", integer); //za każdym razem, przechodząc pętle, wyświetla liczbę o 1 mniejszą od reinteger
	}
} 

Pytanie brzmi: dlaczego tak się dzieje? Czym się różni działanie na zwykłej zmiennej lokalnej (reinteger) od działania na kopii argumentu (integer)?

Pozdrawiam.

2

http://ideone.com/jJezR5

dowod ze tak nie jest.

Cos robisz zle, operacje nie moga byc rozne.

0

Zgadza się, w tej samej funkcji była wywoływana inna funkcja, która inkrementowała tę zmienną, a powinna była działać na innej. Niefortunny błąd. :( Dziękuję za odzew i pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1