百度问问有以下程序: main(int argc,char *argv[ ]) { int n=0,i; for( i=1; i<argc;i++) n=n*10+*argv[i]

如题所述

argc 是命令行参数总个数,含程序名。
argv[i] 是命令行第几个参数,i=0 是程序名,i=1,2,3... 是接下去的参数,注意:是字符串形式。
如果输入形式是:
a.exe 1 3 5
下面程序计算出 n=135
main(int argc,char *argv[])
{
int i,n=0;
for (i=1;i<argc;i++){
n = n*10 + (argv[i][0]-'0');
}
printf("%d ",n);
}追问

有以下程序:
main(int argc,char *argv[ ])
{ int n=0,i;
for( i=1; i<argc;i++) n=n*10+*argv[i]–'0';
printf("%d\n",n);
}
编译连接后生成可执行文件tt.exe,若运行时输入
tt 12 345 678
能解释下for( i=1; i<argc;i++) n=n*10+*argv[i]–'0';的意思吗?

追答

*argv[i] 是argv[1][0],argv[2][0],argv[3][0], ASCII 值,你的情况是'1' '3' '6'
减ASCII 值 '0' 得 整形量 1,3,6。
n=n*10+ 整形量[i] 就是升到 10进制 10 位,百位 ...
--
argv[1],argv[2],argv[3] 是字符串 12 345 678

温馨提示:答案为网友推荐,仅供参考
相似回答