判斷輸出結果
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.