If you are interested more about how main() work, please read the <<advanced Unix programming Environment>> (chapter 6? maybe, about process or environment), which will tell some how exec to pass those argv to main, create process.
There is really a lot of topics and paper on the web, you can do it by yourself.