1)有下列程序: main(int argc, char *argv[ ]) { int n=0, i; for (i=l; i<argc; i+ +)

1)有下列程序:
main(int argc, char *argv[ ])
{ int n=0, i;
for (i=l; i<argc; i+ +) n=n*10+*argv[i] – '0';
printf("%d\n", n);
}
编译连接后生成可执行文件 tt.exe。若运行时输入以下命令行
tt 12 345 678
输出结果是()
那个语句里面N*10是什么意思。

我以前回答过一道这样的题目
是这样的,argc接受输入命令中的单词数(空格隔开的那些),argv这个二维数组接收这些“单词”,因此此例中argc是4,argv[0]到argv[3]存放的依次是tt、12、345和678
再看n=n*10+*argv[i]-‘0’中,*argv[i]相当于argv[i][0],也就是每个“单词”的第一个字母,而这个表达式就是将*argv[i]中的数字字符转化成数字再组合成数字,因此这个数字就是除了第1个单词(for是从i=1开始的)的第一个数字组成的数字:136
另外,n=n*10+*argv[i] – '0'是一种计算方法,作用是根据给出的单个数字依次组成一个数字,例如我给出单个数字1,2,3,那么第一次n=0*10+1=1,第二次n=1*10+2=12,第三次n=12*10+3=123,可以组成数字123
希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-22
这个方法接收的参数是一个int数字和一个char类型的数组,
之后for循环n*10就是n的十倍在加上argv[i]的值;
第2个回答  2011-07-22
n×10
不要被指针变量迷惑
第3个回答  2011-07-22
136
相似回答