Implicit initialization of variables with 0 or 1 in C

CServer Side ProgrammingProgramming

We know that we need to declare variables before using it in our code. However, we variables can be assigned with 0 or 1 without declaration. In the following example we can see this.

Example

#include <stdio.h>
#include <stdlib.h>
x, y, array[3]; // implicit initialization of some variables
int main(i) {
//The argument i will hold 1
int index;
printf("x = %d, y = %d\n\n", x, y);
for(index = 0; index < 3; index++)
printf("Array[%d] = %d\n", i, array[i]);
printf("The value of i : %d", i);
}

Output

x = 0, y = 0
Array[0] = 0
Array[1] = 0
Array[2] = 0
The value of i : 1

Sometimes, if some array is initialized with few values, then rest of the values will hold 0.

#include <stdio.h>
#include <stdlib.h>
int main() {
//The argument i will hold 1
int index;
int array[10] = {1, 2, 3, 4, 5, 6};
for(index = 0; index < 10; index++)
printf("Array[%d] = %d\n", index, array[index]);
}

Output

Array[0] = 1
Array[1] = 2
Array[2] = 3
Array[3] = 4
Array[4] = 5
Array[5] = 6
Array[6] = 0
Array[7] = 0
Array[8] = 0
Array[9] = 0
Published on 26-Apr-2019 13:02:13