Declaration creates a variable: int x;. Initialization gives it a value: int x = 5;. You can declare without initializing, but this is risky. If you declare without initializing, the variable contains whatever garbage was in that memory location before.
Reading it gives unpredictable results. Always initialize variables when you declare them unless you have a specific reason not to. int count = 0; is safer than int count;.