8-3 argc、argv与main函数的传参

it2023-10-23  72

8.3.1 谁给main函数传参

(1)调用main函数所在的程序的它的父进程给main函数传参,并且接收main的返回值。

8.3.2 为什么需要给main函数传参

(1)首先,main函数不传参是可以的,也就是说父进程调用子程序并且给子程序传参不是必须的。int main(void)这种形式就表示我们认为不必要给main传参。 (2)有时候我们希望程序有一种灵活性,所以选择在执行程序时通过传参来控制程序中的运行,达到不需要重新编译程序就可以改变程序运行结果的效果。

8.3.3 表面上:给main传参是怎样实现的?

(1)给main传参通过argc和argv这两个C语言预定的参数来实现 (2)argc是int类型,表示运行程序的时候给main函数传递了几个参数;argv是一个字符串数组,这个数组用来存储多个字符串,每个字符串就是我们给main函数传的一个参数。argv[0]就是我们给main函数的第一个传参;

8.3.4 本质上:给main传参是怎样实现的?

(1)上节课讲过,程序调用有各种方法但是本质上都是父进程fork一个子进程,然后子进程和一个程序绑定起来执行(exec函数族),我们在exec的时候可以给他同时传参。 (2)程序调用时可以被传参(也就是main的传参)是操作系统层面的支持完成的。

最新回复(0)