简单C程序问题,请高人指点,谢谢。
有以下程序(注:字符a的ASCIl码值为97)
#include<stdio.h>
main()
{char*s={"abe");
do
{
printf(”%d”,*s%10);++s;)
while(*s);
)
程序运行后的输出结果是( )。
A)abc B)789 C)7890 D)979899
这个程序的结果是B,为什么不是C?字符串“abc”不是在内存中有个结束标志“\0”吗,而且对应的ASC码也是0,请高人指点,谢谢。
[解决办法]
首先,你的程序N多问题,正确如下:
int main(){ char *s="abc"; do { printf("%d",*s%10); ++s; } while(*s); return 0;}