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值的减法吗? - 这个程序基本上是做什么的?