第1个回答 2012-03-31
这种题真没意思。
A是C90标准写法,你可能把char *argv[]写错了。
B、C、D都是以前的写法。那时候形参的声明是放在小括号外面的,紧跟着小括号。
argc代表参数个数,argv是字符串数组,保存具体的参数。
所以argc应是int,argv应是 char*()[]类型,或者说是char**类型。
argc和argv可以换成其他变量名,只要保持一致就行。
比如你的程序最后生成一个可执行文件test.exe,在命令行状态下输入
test a b
则一共有3个参数(可执行文件名也算一个),于是argc=3,argv[0]="test",argv[1]="a",argv[2]="b"
第2个回答 2012-03-31
当你编译完一个程序后, 会生成一个可执行文件(例如: a.out 吧), 如果用过linux你就知道, 这个文件生成之后, 要运行它要输入命令: a.out 程序就会执行源文件里的入口函数, main函数. 如果main函数是带参数的, 就像你写的那些一样, 例如: int main(int argc, char* argv[]); 其中argc是一个index, 相当于数组下标, argv 就是执行时候命令行的参数指针; 要在命令行输入 a.out 111 222这个时候argv[]就是char* argv[3] = {"a.out", "111", "222"};可以给main函数传参了.