转自https://zhidao.baidu.com/question/436800921.html
1、例程1
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); }
2、例程2
有以下程序: 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