Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Proste pytanko o inicjalizację zerem.

Ostatnio zmodyfikowano 2009-08-14 12:03
Autor Wiadomość
aRusher
Temat założony przez niniejszego użytkownika
Proste pytanko o inicjalizację zerem.
» 2009-08-13 16:53:55
No więc tak. Wiem, że jeśli mam jakąś zmienną, której nie zainicjalizuję zerem, to zależnie od rodzaju tej zmiennej, będzie ona zawierała różne wartości. I tak:
- zmienne globalne i lokalne statyczne - automatycznie inicjalizowane 0,
- zmienne lokalne automatyczne - nie są inicjalizowane 0, przechowują więc jakieśtam "śmieci",

Moje pytanie jest następujące: dlaczego, gdy sobie zdefiniuję jakąś zmienną (powiedzmy int) w funkcji main, a następnie ją wypisuje, otrzymuje 0. W innych funkcjach to już różnie, przeważnie jeśli w definiuję w jakiejś pętli, to faktycznie wypisuje mi "śmieci". Może to 'zasługa' mojego kompilatora (Dev-C++), może inicjalizuje on 0 wszystkie zmienne w funkcji main? Jeśli chodzi o inne funkcje, może to zależy od tego, co w danym momencie znajduje się w tym fragmencie pamięci?
P-9404
aRusher
Temat założony przez niniejszego użytkownika
» 2009-08-13 17:13:32
1. Ojej, przecież na środowiska mówi się popularnie 'kompilatory'...

2. Także w mainie?
P-9406
DejaVu
» 2009-08-13 17:15:54
Przyjmij, że zawsze są śmieci w niezainicjowanych zmiennych. Nie zakładaj, że kompilator wyzeruje Ci wartości jakiejkolwiek zmiennej bo później możesz szukać przyczyny w stylu: 'Czemu program przestał działać po dodaniu wypisywania tekstu?'.

/edit:
Na środowiska mówi się środowisko programowania, na kompilator - kompilator. Kompilator jest dołączony do środowiska. Środowisko odpowiada tylko i wyłącznie za kolorowanie składni i intelisence - czyli podpowiedzi.

ten_zuy jest strasznie czepliwy o nazewnictwo. Warto się starać poprawnie wyrażać swoje myśli :)
P-9407
WunM
» 2009-08-13 17:31:58
Wartość 0 tez jest śmieciem. Przecież jeśli nie inicjalizujesz zmiennej wartością to chcesz żeby nie miała wartości (co oczywiście nie jest możliwe).

//
Ojej, przecież na środowiska mówi się popularnie 'kompilatory'...

Taaa... a Windows jest językiem programowania...
P-9409
DeBugger
» 2009-08-13 17:35:22
Zależy. Np. w kilku językach jest stworzona dla liczb rzeczywistych wartość "NaN", która jest pseudowartością, a przy próbie konwersji na typ całkowity wychodzą nam jakieś bzdury zamiast wartości (takie śmiecie).
P-9410
WunM
» 2009-08-13 17:38:42
A w JavaScript jest coś takiego jak "undefined". I co to ma wspólnego z C++.
P-9411
WunM
» 2009-08-13 23:10:25
//Ja poprawiłem
P-9427
aRusher
Temat założony przez niniejszego użytkownika
» 2009-08-14 10:32:10
\*Przyjmij, że zawsze są śmieci w niezainicjowanych zmiennych. Nie zakładaj, że kompilator wyzeruje Ci wartości jakiejkolwiek zmiennej*\

Zawsze? To znaczy w zmiennych globalnych i statycznych też? No chyba nie muszę inicjalizować zerem takich zmiennych.
P-9433
« 1 » 2
  Strona 1 z 2 Następna strona