#include<iostream>
using namespace std;
int main()
{
char a[]="12345",*p;
int s=0;
for(p=a;*p!='\0';p++)
s=10*s+*p-'0';
cout<<s;
return 0;
}
s=10*s+*p-'0' 这个什么意思?如果是字母呢?和ASCII码值有关系吗?
追答*p-'0'//即为p指向的字母与‘0’的位置差,是个整数,形象的说如果×p的值为'0'那么*p-'0'的值为0
10*s为上个循环的值 每个循环取上面字符串中的一位,计算,每次循环会将上个值×10,即左移一位。最后得到的是字符串对应的数字。