在许多c语言初学者中编写函数时,都喜欢将无参函数中的参数类型忽略。
但是实际上 默认的参数类型 不是无参 void ,而是接受 任意数量和类型的参数 。也就是说 int func() 和 int func(void) 是不一样的。下面通过一个例子加深了解一下在C语言中函数的默认参数类型:
所以说,在使用c语言编写无参函数时,一定要把 void 写上去,不然会有安全隐患。
intmain(
int
argc,
char
*argv[],
char
*envp[]
)
三个参数:
argc表示有多少个命令行参数,第一个就是执行程序名,所以argc最少为1。
argv是具体的参数。
envp是系统的环境变量,很少有介绍的。“名称=值”的形式,以NULL结束。
可以测试一下:
int
main(
int
argc,
char
*argv[],
char
*envp[]
)
{
for
(
int
i
=
0
i
<
argc
++i
)
{
printf(
"%d
:
%s
\n",
i,
argv[
i
]
)
}
for(
int
i
=
0
envp[i]
!=
NULL
++i
)
{
printf(
"%d
:
%s
\n",
i,
envp[
i
]
)
}
return
0
}