本人对c语言不是很熟悉,一下如有问题,请批评指正。
C语言中,一般情况下main函数不带参数(或者说不使用参数),但是并不代表main函数没有参数。其实,main函数可以有两个参数,一个是整数类型的argc,一个是指针数组argv。常见main函数定义:
int main(int argc,char* argv[])
那么这两个参数分别代表什么含义呢?如何给这两个参数赋值呢?
先说下第二个参数,指针数组。数组中每个元素都是char类型的指针,每个指针可以指向一个字符串。事实上,第二个参数里的每一个指针所指向的字符串都来自于用户在命令行上的参数。我们将代码编译成可执行文件test.exe时,可以在命令窗口直接运行,这里的参数正是我们在命令窗口输入的值。如果test.c中main函数没有参数(或者没有用到参数),那么我们就可以
test.exe
直接运行。如果我们想使用参数,在某种特殊的情况下,这也确实是有特殊的用途的。那么我们可以在文件名字后跟上参数
test.exe str1 str2
重点来了:这时argv[0]指向"test.exe",argv[1]指向"str1",argv[2]指向"str2",此时第一个整形参数argc的值为3,也就是命令行中所有参数的个数。如果main函数定义中不是main(void)那么,其中的两个参数也是有值的,只是我们没用到。(避免误导,我的c基础很差,大家可以自己测试,欢迎将测试结果写在评论区里)
那么在eclipse或者一些编译软件中如何给main函数的参数赋值呢?
这里以exlipse for c++为例。右键项目->Run as->Run Configurations...,打开
在这里填入参数,点击Run即可。