i understand concept of defining constant variables like

Code:
const int i = 5;
const char * tx = "hello";
but i don't understand when it comes to function parameters, what is the difference between these pairs

Code:
void func(int i){}
void func(const int i){}

int func(){}
const int func(){}

void func(char * tx){}
void func(const char * tx){}

char * func(){}
const char * func(){}