重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这是C的语法规定的,函数名的后面一定要带括号。但括号里面不一定带有参数。这要根据你的函数是否需要参数接口而定,像main()这个入口函数它就不需要用户传递任何参数给它,所以就没有提供参数接口(其实main是有带有参数接口的,用来存放命令行的参数,原型请自己在网上找)。而average函数是一个求平均数的函数,试问一下,如果你告诉系统你要对那些数求平均数,你说系统有这么神奇知道想求哪些数的平均数吗?明显是不可能的,那么要怎么让系统知道你想求的数呢,那就要靠参数传递来实现。
创新互联建站是一家专注于做网站、成都网站制作与策划设计,和顺网站建设哪家好?创新互联建站做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:和顺等地区。和顺做网站价格咨询:13518219792
这个两个是用于从命令行获取运行参数的。
具体你可以看一下
C语言规定main函数的如果带参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:
int main (argc,argv)
C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (int argc,char *argv[])
main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在控制台提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
控制台提示符下命令行的一般形式为:
C:\可执行文件名 参数 参数……;
但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。
例如有命令行为:
C:\E24 BASIC foxpro FORTRAN
由于文件名E24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。
#include iostream.h
int main(int argc,char *argv[])
{
for(inti=0;iargc;i++)
{
coutargv[i]'\t'; //
}
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()形式)
形式参数。你可以这么理解:
在数学函数 y=2x 中y就是函数名,相当于“abc”;x就是那个括号里面的“形式参数”;当你调用这个函数时,需要将一个具体的值代入给x,这个具体的值叫做实际参数。
形式参数确定了该函数调用需要哪些值,或者说“原料”。
欢迎追问
函数后面的括号里面是参数,参数分为形参和实参;
void表示参数为空,即这个函数不含参数,比如定义一个print函数。
int jsvalue(int bb[])表示函数jsvalue的形参为整形数组,函数返回值为整形。
*代表指针,FILE代表是一个文件类型,stream是参数名称。
FILE * stream表示的是一个叫stream的参数,他是一个指针,并且这个指针指向FILE(文件)类型。
char * format表示的是一个叫format的参数指向char(字符)类型的指针。
一般写法都是: 函数类型 函数名称;
[argument]代表参数可选,就是可以继续增加参数。