葡萄的所有小说:C语言的题

来源:百度文库 编辑:杭州交通信息网 时间:2024/03/29 21:28:52
以下程序是功能是将无符号八进制整数构成的字符串转换为十进制整数。例如,输入的字符串为556,输出的十进整数为366
#include<stdio.h>
main()
{char *p,s[6];
int n;
p=s;
gets(p);
n=*p-'0';
while(_______!='\0')n=n*8+*p-'0';
printf("%d\n",n);}我在这里填的是*P++为什么错了,应该填什么

#include<stdio.h>
main()
{char *p,s[6];
int n;
p=s;
gets(p);
n=*p-'0';
while(*++p!='\0')n=n*8+*p-'0';
printf("%d\n",n);
}
/*因为开始n=*p-'0'; 就是直接取字符数 s[6] 的第一个数据s[0].
*++p 其中运算符 * 和 ++运算符他们的优先级是相同的,且是从右到左结合性.先结合++p由于++p是先对指针p加一也就是指向紧接着的下一个内存单元,即就是访问s[1]了。

应该填*++p

*(++p)