求解一道C语言题目
FILEL CHINA BEIJING SHANGHAI
程序的输出结果是
main(int argc,char *argv[ ])
{ while(argc-->0)
{ ++argv;printf("%s".*argv);}
}
谁帮帮忙详细解析以下每个步骤 特别是-->这个符号是什么意思 展开
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int GetPrime(int a[], int b[], int n) {
int C = 0;
for(int i = 0; i < n; i++) {
int j;
if(a[i] == 1 || a[i] % 2 == 0)
continue;
for(j = 2; j * j <= a[i]; j++)
if(a[i] % j == 0)
break;
if(j * j > a[i])
b[C++] = a[i];
}
return C;
}
int main() {
int a[20], b[20], n;
srand(time(NULL));
for(int i = 0; i < 20; i++)
a[i] = rand() % 99 + 1;
n = GetPrime(a, b, 20);
printf("原始数组:\n");
for(int i = 0; i < 20; i++)
printf("%d%c", a[i], i % 5 == 4 ? '\n' : ' ');
if(n == 0)
printf("\nNO");
else {
printf("\n素数数组:\n");
for(int i = 0; i < n; i++)
printf("%d%c", b[i], i % 5 == 4 ? '\n' : ' ');
}
putchar('\n');
return 0;
}
main(int argc,char *argv[ ]) //这是说这个程序,包含自己的程序名在内,有argc个参数,每个参数分别作为字符串存在argv这个数组里。
{ while(argc-->0) //条件判断argc是否大于0,判断后argc减1。
{ ++argv;//argc数组指针前移。
printf("%s".*argv); //打印argv这个地址对应的字符串。。。
}
}
哥们写这么细了。。明白了吧。。。
CHINABEIJINGSHANGHAI
析
FILEL CHINA BEIJING SHANGHAI
文件名 参数1 参数2 参数3
argv[0] argv[1] [2] [3]
argc=3
while () 后自减>0 即3次循环
每次输出后一个argv[]的字串值(即从[1]开始输出)