所有的函数在内存中都有一个入口地址,称为函数的指针。要调用某函数,需要找到该函数的入口地址,从该地址开始执行,而main()函数是整个程序的入口。main()函数也可以被调用,认为是被系统所调用。在以往的程序中,主函数main()都使用其无参形式。实际上,主函数main()也可以使用带形参的形式。
1.main()函数的有参形式
main()函数的有参形式为:
main(int argc, char *argv[ ])
{
…
}
【例题】求ASCII最大的字符
建立一个main()函数带形参的程序,程序执行时,从键盘上输入任意多个字符,求其中ASCII最大的字符。
#include <stdio.h>
main(int argc, char *argv[])
{
int i;
char c=*argv[l]; /*假设第一个字符就是最大值*/
for(i=2;i<argc;i++)
if(c<*argv[i])
c=*argv[i];
printf("The max character is %c\n",c);
}
程序执行过程如下:
①先将该程序编译并链接,但不执行。
②找到“开始”菜单下的“运行”对话框,输入“cmd”单击“确定”按钮,进入命令行窗口中。
③打开命令行窗口默认的目录“C:\WINDOWS\system32”,将路径定位到该文件的可执行文件所在的目录。如本程序保存在“C:\”,则该程序的可执行文件存在于“C:\debug”目录下。使用如下DOS命令进入:
cd\
cd debug
④之后输入该文件名,例如本文件名为(lianxl.c),并给出参数:
lianxil a b c d e f g
输出结果为:
The max character is c
2.说明
(1)带形参的主函数,必须在操作系统状态下输入主函数所在的可执行文件名及所需的实参,然后按Enter键,才可执行。
(2)执行该带形参的main()函数的程序命令行的一般格式为:
可执行文件名 实参[ 实参2……]
实参与实参之间以空格分隔。
(3)形参argc是命令行中参数的个数(可执行文件名本身也算一个)。如本例中,形参argc的值为8。
(4)形参argv是一个字符指针数组’即其元素值都是指向实参字符串的指针。
在本案例中,元素argv[0]指向第1个实参字符串“lianxiV”,元素argv[1]指向第2个实参字符串“a”,元素argv[2]指向第3个实参字符串“b”,元素argv[3]指向第4个实参字符串“c”,元素argv[4]指向第5个实参字符串“d”……元素argv[7]指向第8个实参字符串“f”。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>