If you don't give it an initial value, it'll just have whatever crap value was in memory where it is stored, so you could get unexpected results if you try to use it before you modify its value.
Just put it in right when you declare them. Yes, the user can still put their own values in, it's just forcing it to have an initial value that you specify. It's still better to initialize your variables even if you know you'll be overwriting the value right away.
This is not totally related to your question, but this is an example why you should not initialize variable when declare them, you will not get warning if you initialize them at first place, and you might think it's other logic error that you get 0 for any input.
Do not initialize variable to meaningless value, do this only when you really know what value it should be (like iteration count in loops).