判断输出结果
int main(int argc, char *argv[])
{
int i, n = 0;
for (i=1; i<argc; i++) { n = 10*n + *argv[i] – ‘0’; }
printf(“%d\n”, n);
}
运行时输入 ./aout 12 345 678
输出结果为____B_____。
A、123 B、136 C、678 D、58
分析:
argc 命令中参数(字符串)的个数(包含./a.out)
argv[] 命令行中每一个字符串的首地址(包含./a.out)
输入./aout 12 345 678后,argv=4;所以for循环三遍;
*argv[ i ],argv是指针数组,存放着命令字符串的首地址,比如:argv[1]就是字符串12的首地址,argv[1]就是取首地址的元素1;
argv[i] – ‘0’ 就是取出首地址的char型元素1转化成整型1;
所以 第一次循环n=1;第二次循环n=110+3=13;第三次循环n=1310+6=136;
循环结束n=136.