Wpis z mikrobloga

Kiedyś coś pisałem sobie w #cpp i teraz postanowiłem sobie do niego wrócić, zacząłem robić sobie proste zadanie z /r/dailyprogrammer na reddit i coś się dziwnnego stało mam taki kawałek kodu (dla czytelności pominę std::):

bool checkChars(string _string){
int counterX, counterY;

// JAKIS KOD

return false;
}

No i w takiej funkcji gdy wypiszę sobie wartość początkową counterX i counterY bądą one wynosić kolejno 0 i coś w stylu 607595776 (co uruchomienie się zmienia). Oczywiście łatwo to można zmienić, ustalając z góry wartość początkową dla counterY = 0 ale moje pytanie to dlaczego counterY_ przyjmuje tego typu wartości?


#naukaprogramowania #kiciochpyta
  • 3
  • Odpowiedz
@h00k: tworząc zmienną int counterX przesuwasz tylko wskaźnik stosu o wielkość inta. nie inicjalizujesz go w żaden sposób, gdybyś może chciał tam jakoś później wsadzić jakąś wartość(na przykład w jakimś forze - gdyby tam zdeklarować tę zmienną, to wypadłaby z zasięgu poza forem). skoro ty będziesz chciał przypisać tam wartość dopiero później, to nie ma potrzeby inicjalizować jej przy starcie - ale do tego czasu zawierasz cichy pakt z kompilatorem, że
  • Odpowiedz