第1个回答 2009-09-01
argc argument count的缩写,是指示程序入口参数个数 这里是4(分别为tt、12、345、678)
argv argument value的缩写,是指示程序入口参数字符数组 这里argv[0]="tt",argv[1]="12",argv[2]="345",argv[3]="678"
你的程序是编译不通过的,因为argv[i]是字符指针,应该少一个*,代码如下
#include <stdio.h>
void 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);
}
i=1时,*argv[1]是被强制类型转化为字符串第一个字符'1'的整形值,-'0'后就是1了,i=2时,*argv[2]是被强制类型转化为字符串第一个字符'3'的整形值,-'0'后就是3了,加上前面的1*10就是13;同样最后结果为136
第2个回答 2009-09-01
答案是:136
tt 12 345 678
tt.exe是程序的名字
后面带3个命令行参数(字符串类型的)
main()函数中的
argc是参数的个数(int类型),也就是3个(12 345 678)
argv是保存参数的二维字符数组
argv[0]指向程序路径: "tt.exe"
argv[1]指向第一个参数:"12"
argv[2]指向第二个参数:"345"
argv[3]指向第三个参数:"678"
显然
*argv[1] = '1' n=n*10+argv[i]-'0'; n = 1
*argv[2] = '3' n=n*10+argv[i]-'0'; n = 13
*argv[3] = '6' n=n*10+argv[i]-'0'; n = 136