Declarations and Initializations - Programming

Q1:

In the following program where is the variable a getting defined and where it is getting declared?
#include<stdio.h>
int main()
{
    extern int a;
    printf('%d\n', a);
    return 0;
}
int a=20;

A extern int a is declaration, int a = 20 is the definition

B int a = 20 is declaration, extern int a is the definition

C int a = 20 is definition, a is not defined

D a is declared, a is not defined

ANS:A - extern int a is declaration, int a = 20 is the definition

- During declaration we tell the datatype of the Variable. - During definition the value is initialized.