if i declare an array as : "char a[100] = 0;" What value is currently available in a[1], a[2], a[3]....??
You'll need braces around the initializer, like this:
char a[100] = { 0 };
If the array has block scope, the first elements will be initialized to the values supplied, and the remaining elements will be initialized to zero, which means, in this case, that the entire array will be initialized to zeros.
However, as AWOL points out, if there is no initialization of an array with block scope, then the array will probably contain whatever garbage happened to occupy that part of memory.
A warning: I don't have a C++ language specification, and the information I've provided comes from the C specification. I'm making the (admittedly dangerous) assumption that the language specifications are in agreement on this.