展开全部
void main() {...;exit(0);}
int main() {...; return 0;}
void 无返回值,退出主程序要有 exit(n);语句。
int 返回整型值,退出主程序要有 return n; 语句。
()之内的东西是程序执行时可能会调用的参数。
对程序员来说,main函数是程序的入口点,但是对编译器来说,需要增加附加的初始化代码来处理和操作系统环境有关的东西,诸如命令行参数等,然后再调用main进入用户编写的代码,按照约定,在调用main之前,初始化代码会按照main(int argc, char* argv[])的参数形式将argc,argv放入堆栈,供main中的代码调用。如果main定义成其它参数形式,虽然语法是没有问题,但可能得不到正确的参数。
比如,以下的参数形式多数的编译器能够编译通过
int main() //不需要处理传入参数
int main(int argc) //argc传入参数个数
int main(int argc,char *argv[]) //argc传入参数个数,argv传入命令行字符串数组
int main(int argc, int p) //虽然p定义成整型,但实际传入的仍是命令行字符串数组指针。
int main(int argc, char *argv[], int u) //多了个参数u,前面2项没问题,但对u的存取可能会破坏堆栈。
int main() {...; return 0;}
void 无返回值,退出主程序要有 exit(n);语句。
int 返回整型值,退出主程序要有 return n; 语句。
()之内的东西是程序执行时可能会调用的参数。
对程序员来说,main函数是程序的入口点,但是对编译器来说,需要增加附加的初始化代码来处理和操作系统环境有关的东西,诸如命令行参数等,然后再调用main进入用户编写的代码,按照约定,在调用main之前,初始化代码会按照main(int argc, char* argv[])的参数形式将argc,argv放入堆栈,供main中的代码调用。如果main定义成其它参数形式,虽然语法是没有问题,但可能得不到正确的参数。
比如,以下的参数形式多数的编译器能够编译通过
int main() //不需要处理传入参数
int main(int argc) //argc传入参数个数
int main(int argc,char *argv[]) //argc传入参数个数,argv传入命令行字符串数组
int main(int argc, int p) //虽然p定义成整型,但实际传入的仍是命令行字符串数组指针。
int main(int argc, char *argv[], int u) //多了个参数u,前面2项没问题,但对u的存取可能会破坏堆栈。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询