int main(int argc, char* argv[])
{
int i,s;
s=0;
char*p;
for(i=1; i<argc;i++)
{
for (p=argv[i];*p;p++);
s+=(p-argv[i]);
}
printf("%d\n",s);
return 0;
}
我很难理解这段代码的作用。
据我所知,它忽略了程序的名称,并且对于在命令行中打印的每个其他字符串,它都设置p
为当前字符串。
- 条件
*p
是“p
只要不是,就继续旅行NULL
,即直到你到达字符串的末尾? - 在每次迭代
s
中,将当前 的减法相加p
,其余单词的名称为argv[i]
,这个减法的结果是什么?这是两个ascii值的减法吗? - 这个程序基本上是做什么的?