怎么主函数还有参数是什么意思main(int argc,char *argv[ ])

#include <stdio.h>
#define ROWS 4
#define COLS 4
int nums[ROWS][COLS]={{1000,1000,1000,1000},
{900,500,400,100},
{90,50,40,10},
{9,5,4,1}};
char *roms[ROWS][COLS]={{"m","m","m","m"},
{"cm","d","cd","c"},
{"xc","l","xl","x"},
{"ix","v","iv","i"}};

main(int argc,char *argv[ ])
{
int low,high;
char roman[25];

if(argc<2)
{ printf("Usage:roman decimal_number\n");/*运行程序需带整数参数*/
exit(0);
}
high=low=atoi(argv[1]);/*将第一个参数转换成整数*/
checknum(low);
if(argc>2)
{/*带两个参数*/
high=atoi(argv[2]);
checknum(high);
if(low>high)
{
low=high;
high=atoi(argv[1]);
}
}
else
low=1;
for(;low<=high;low++)
{
to_roman(low,roman);
printf("%d\t%s\n",low,roman);
}
}

checknum(int val)/*检查参数合理性*/
{
if(val<1||val>9999)
{
printf("The number must be in range 1..9999.\n");
exit(0);
}
}
to_roman(int decimal,char roman[ ])/*将整数转换成罗马数字表示*/
{
int power,index;
roman[0]='\0';
for(power=0;power<ROWS;power++)
for(index=0;index<COLS;index++)
while(decimal>=nums[power][index])
{
strcat(roman,roms[power][index]);
decimal-=nums[power][index];
}
}

这个叫做命令行参数,

经常在cmd命令行模式下调用程序的时候 通常是这样调用,比如:
net stop w3svc
net 就是这个程序的名称 后面的 stop、w3svc 就是命令行参数
启动net.exe 并传送两个参数给它, 这个两个参数net.exe是怎么接收的呢, 就是靠net.exe的 main函数的接收那两个参数
main(int argc,char *argv[ ])
argc 代表参数的个数,
*argv[ ] 外面传进来的这些参数就在这个字符串数组里
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-06
我一般编写程序没有用这个参数,这里有个说的很详细,这个参数是做什么的,你可以看看,http://www.360doc.com/content/10/0528/15/722458_29981053.shtml
相似回答