main函数的参数,使其可以接受运行指令后面的命令数据

P87 9.2.2 动态内存分配 的视频里面出现的main函数,里面的参数,使其可以接受运行指令后面的命令数据。

?

10.1.4 字符串数组_高清 720P P91 - 06:14main函数参数的运用

?

```c

#include <stdio.h>

int main(int argc, char const *argv[])

{

    int i;

    for ( i = 0; i < argc; i++)

    {

        printf("argv[%d] = %s
", i, argv[i]);

    }

   

    return 0;

}

```

我看弹幕有些人说什么运行不了,实现不了啥的。也难怪。老师用的是苹果mac系统和unix有些渊源,具体的我也不大清楚。unix类似于Linux的祖宗,你如果会这linux,应该可以理解为什么windows上直接运行这个代码,是无反应的。

我们都知道,Windows的可执行文件是.exe后缀,而linux(类unix系统)的可执行文件一般是没有后缀的(大概是,我只学了一点点,如果有大佬清楚,可以回复我讲讲)。

那么我们就能清楚一点,命令gcc test.c是编译我们的源码使其可以成为一个可执行文件(相关gcc编译命令大家可以自查),这条命令相当于集成开发环境里面的编译但不运行。

这样我们就能得到一个可执行文件,在linux里面可执行文件没有后缀,而windows的可执行文件为.exe后缀。

老师的./a.out.out 123 asd asd asdasd 就是在当前文件下运行a.out的这个可执行文件.表示在当前目录下。正常的程序不用跟后面的“参数”。而main函数把后面的“参数”识别成了一个个char const *argv[] 的指针数组。它可以像字符串那样打印出来。就像老师的运行结果一样。

在Windows环境下,同样我们要先生成可执行文件.exe(只编译不执行)。然后用命令行的命令操作后面接上要显示的字符串来运行。

.MeaningOfMainParameters.exe Hello I am Ealsen Happy New Year everyone

如图所示:

有不足之处,请批评指正!

笔者:Ealsen

内容来源:

【浙江大学翁恺教你C语言程序设计!C语言基础入门!】 10.1.4 字符串数组_高清 720P_哔哩哔哩_bilibili

  1.  视频标记点:06:14