您好,登录后才能下订单哦!
1:为什么需要给main函数传参
首先要明白一点,给mian函数传参不是必须的,但是有时候我们需要通过给main函数不同的参数来得到的不同的结果,比如我们希望main函数中某个变量的值为0时执行子函数A,该变量值为1时执行子函数B,那么这个时候就可以通过给main函数传参来实现,mian函数传参格式如下:
int main(int argc , char *argv[]) int main(int argc , char **argv)
参数解释:
argc:int类型的参数,表示给mian函数传递了多少个参数
argv 一个字符数组(或者是二重指针),这个数组用来存放多个字符串,每个字符串就是我们给main函数传递的一个参数,需要注意的是我们./a.out执行这个程序时也算是给main函数传递了一个参数
2:谁给main函数传参
在普通的函数a中,它里面的参数是由调用函数a的函数b传递的,同样的,main函数的传参也是有调用main函数的“函数”给main函数传参的,但是我们知道,main函数是一个程序的入口函数,所以给main函数传参的是调用这个程序的一个程序,也就是main函数所在的父进程,并且由这个父进程接受main函数的返回值。
3:main函数传参的本质
程序调用有各种方法但是本质上都是父进程fork一个子进程,然后子进程和一个程序绑定起来去执行(exec函数族),我们在exec的时候可以给他同时传参。程序调用时可以被传参(也就是main的传参)是操作系统层面的支持完成的。举个简单的例子,当我们在控制台下面输入./a.out去执行一个程序的时候,其本质是控制台进程创建了一个子进程去调用我们./a.out这个可执行程序,并负责给这个程序的入口函数也就是main函数传参,并接收其返回值。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。