My understanding:
int a = 1;
// variable definition =
// declaration + initialisation
int b; // variable declaration
b = 2 // variable initialisation,
// type of assignment
a = 3 // variable assignment
int f(int x, int y);
// function declaration
int g(int z) {
return z;
} // function definition
int f(int x, int y) {
return x + y;
} // function definition