Siz int toplam; deyince bellekten yer ayrılıyor. Neye göre değişiyor bilmiyorum ama (Compiler ya da başka bir şey) içerisinde çöp değer olabiliyor. Belki de integer olunca direkt 1 veriyordur sizinki. Onu sıfır yap dediğinizde içerisinde kesinlikle sıfır oluyordu. Hatta isterseniz int toplam; deyip hemen altında onun değerini yazdırmayı deneyebilirsiniz. Verilen tepki değişkenlik gösteriyor. Bu tip durumların önüne geçmek için değişkenler tanımlandığında ilklendirilir. C++'ta auto keyword'ü bunu zorunlu kılıyor. Hoş bir özellik. Kesinlikle unutmamış oluyorsunuz.