请教c语言int main()括号里面参数的作用

2024年11月18日 18:39
有3个网友回答
网友(1):

#include
int main(int argc,char *argv[])
{
for(inti=0;i{
cout<}
return0;
}
/*

int argc, char **argv 用于运行时,把命令行参数传入主程序。

argc -- 命令行参数总个数,包括 可执行程序名。

argv[i] -- 第 i 个参数。

argv[0] -- 可执行程序名。

*/

关于带参数的main函数网络收集:
int main(int argc,char **argv) 这里面的**argv含义··

是用来传递参数的,假如你编译成的文件名是a.exe,那么在命令提示符下可以通过a.exe12
34来向程序传递参数,这时两个参数就会传递到字符串数组argv中,注意此时实际传递了三个参数,第一个参数是文件名,第二个参数是12,第三个是34,而argc就是参数个数。

int argc, char **argv 用于运行时,把命令行参数传入主程序。

argc -- 命令行参数 总个数,包括 可执行程序名。

argv[i] -- 第 i 个参数。

argv[0] -- 可执行程序名。

// 例如运行:

abc.exe

argc 等于 1, argv[0] 是 "abc.exe"

// 例如运行:

rec.exe 4 5.2

argc 等于 3, argv[0] 是 "rec.exe", argv[1] 是 "4", argv[2] 是 "5.2".

主函数里若有:

int x;

float y;

char s[80];

strcpy(s,argv[0]); // 程序名存入 了 s

sscanf(argv[1],"%d",&x); // x 得到数值4

sscanf(argv[2],"%f",&y); // y 得到数值 5.2

ANSI-C(C89/C99)的话main()函数有2种主要形式。

(1) int main(void)
(2) int main(int argc, char *argv[])

(2)也可写成int main(int argc, char **argv)
argv[argc]放空指针(NULL指针)。
argc和argv可以用别名。

另外,还有一种受系统限制的形式:
int main(int argc, char *argv[], char *envp[])
前两个参数同(2),第三个参数envp[]放环境变量。
这个形式很少用。

所以严格讲,
ANSI-C推荐的带参数的main()函数只有上面(2)这一种。

另外,搜集了一下C和C++中常见的几种形式:

(1) main()
(2) int main()
(3) int main(void)
(4) int main(int, char**)
(5) int main(int, char*[])
(6) int main(int argc, char **argv)
(7) int main(int argc, char *argv[])
(8) int main( int argc, char *argv[], char*envp[])
(9) void main(void)

(1)是(3)的简写。不推荐使用。
(2)是(3)的简写。在C++中是正确的形式。
(3)在C和C++中都是正确的形式。推荐使用。(还有缺省int的main(void)形式)。
(4)和(5)是不用参数时的一种写法。编译器级别高时会警告。不推荐使用。
(6)是(7)的另外写法。两种都可以,凭个人爱好。
(7)是带参数的正确的形式。推荐使用。
(8)是一种很少用的写法,且受系统限制。
(9)一般不认为是正确的写法。但是在嵌入式系统中有使用(包括void main()形式)

网友(2):

#include

int
main(int
argc,char
*argv[])
{
for(inti=0;i{
cout<//
}
return0;
}
/*
int
argc,
char
**argv
用于运行时,把命令行参数传入主程序。
argc
--
命令行参数总个数,包括
可执行程序名。
argv[i]
--

i
个参数。
argv[0]
--
可执行程序名。
*/
关于带参数的main函数网络收集:
int
main(int
argc,char
**argv)
这里面的**argv含义··
是用来传递参数的,假如你编译成的文件名是a.exe,那么在命令提示符下可以通过a.exe12
34来向程序传递参数,这时两个参数就会传递到字符串数组argv中,注意此时实际传递了三个参数,第一个参数是文件名,第二个参数是12,第三个是34,而argc就是参数个数。
int
argc,
char
**argv
用于运行时,把命令行参数传入主程序。
argc
--
命令行参数
总个数,包括
可执行程序名。
argv[i]
--

i
个参数。
argv[0]
--
可执行程序名。
//
例如运行:
abc.exe
argc
等于
1,
argv[0]

"abc.exe"
//
例如运行:
rec.exe
4
5.2
argc
等于
3,
argv[0]

"rec.exe",
argv[1]

"4",
argv[2]

"5.2".
主函数里若有:
int
x;
float
y;
char
s[80];
strcpy(s,argv[0]);
//
程序名存入

s
sscanf(argv[1],"%d",&x);
//
x
得到数值4
sscanf(argv[2],"%f",&y);
//
y
得到数值
5.2
ANSI-C(C89/C99)的话main()函数有2种主要形式。
(1)
int
main(void)
(2)
int
main(int
argc,
char
*argv[])
(2)也可写成int
main(int
argc,
char
**argv)
argv[argc]放空指针(NULL指针)。
argc和argv可以用别名。
另外,还有一种受系统限制的形式:
int
main(int
argc,
char
*argv[],
char
*envp[])
前两个参数同(2),第三个参数envp[]放环境变量。
这个形式很少用。
所以严格讲,
ANSI-C推荐的带参数的main()函数只有上面(2)这一种。
另外,搜集了一下C和C++中常见的几种形式:
(1)
main()
(2)
int
main()
(3)
int
main(void)
(4)
int
main(int,
char**)
(5)
int
main(int,
char*[])
(6)
int
main(int
argc,
char
**argv)
(7)
int
main(int
argc,
char
*argv[])
(8)
int
main(
int
argc,
char
*argv[],
char*envp[])
(9)
void
main(void)
(1)是(3)的简写。不推荐使用。
(2)是(3)的简写。在C++中是正确的形式。
(3)在C和C++中都是正确的形式。推荐使用。(还有缺省int的main(void)形式)。
(4)和(5)是不用参数时的一种写法。编译器级别高时会警告。不推荐使用。
(6)是(7)的另外写法。两种都可以,凭个人爱好。
(7)是带参数的正确的形式。推荐使用。
(8)是一种很少用的写法,且受系统限制。
(9)一般不认为是正确的写法。但是在嵌入式系统中有使用(包括void
main()形式)

网友(3):

用与调用这个程序的时候指定参数