麻烦各位帮我解析一下这个C语言程序? 越详细越好

main()
{char ch[2][5]={"6934","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
求上面程序的运行结果

6385

这是大致分析。
char ch[2][5]={"6934","8254"},*p[2]; //定义了一个二维数组的字符串,和指针。
int i,j,s=0;
//这个循环 是 将ch的值,赋给指针*p[0],*p[1]
for(i=0;i<2;i++)
p[i]=ch[i];

//这两个循环是将指针P[0],P[1]的偶数位 转换为int型 赋给S。
for(i=0;i<2;i++)
for(j=0;p[i][j]>'0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0'; //这句话就是将char型,转换为int型的语句。
//逻辑就是对应的数字的ASCII码值,减去'0'的ASCII码值。
printf("%d\n",s); //打印S;结果为6385 。
温馨提示:答案为网友推荐,仅供参考
相似回答