大一时候学校有个学习分享会,有一个学长问了一句:”C你们应该都学完了,那你们知道main函数有多少个参数吗?那些参数有什么用?”
刚才在计组课间看linux.cn 上有一篇文章叫《如何写好 C main 函数》,让我再次想起学长所问,虽然知道main 函数是有参数的,只知道有两个,没有深究。
三个参数
1 |
|
用void 就是让我的vim 不要有讨厌的黄色高亮警告。哈哈。如果我没有第四行那句,就会有”讨厌”的警告。
argc和argv
在B站看刘意老师讲 Java 的时候,他有提到过 Java 的 main 函数的那个String[] args
是在 Java 刚出来的时候没有 Scanner 类,所以通过这种方式来获取输入的参数。
在 C 中这两个参数就是获取命令行传入的参数的,比如在用ls -al
的时候,后面的就作为参数传给了ls
程序。
argc
参数个数参数向量的个数argv
参数向量字符指针数组
写个程序来试试。
1 |
|
输出
当然在Windows下也是同样的,下面的图片来源于CSDN博客:
env
env 是用来获取环境变量的。
1 |
|
输出:
补充通过第三方变量获取环境变量
libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。
1 |
|
得到的输出和上面是一样的。