Variable names apply only to the compiler. They will be converted to binary addresses. You can pass up to 3 parameters for the main one.
Here is what I tried -
int main(int i, char* a[], char* e[])
As you can see, the names are not normal names. The first parameter is the number of command line arguments, the second is the actual array of arguments, and the third is an array of environment variables.
In fact, main can take any number of arguments, and the rest, after the third, will be invalid. It will compile anyway -
int main(int i, char* a[], char* e[], char* j[])
And just for fun, you can even do it -
int main(int i, float a, float b, float c, float d, float e)
source share