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? |
|
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? |
|
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 :) |
|
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... |
|
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). |
|
WunM |
» 2009-08-13 17:38:42 A w JavaScript jest coś takiego jak "undefined". I co to ma wspólnego z C++. |
|
WunM |
» 2009-08-13 23:10:25 //Ja poprawiłem |
|
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. |
|
« 1 » 2 |