=a;p--) {printf("%c",*p); } } /*abcdefghijklmnopqrstuvwxyz " />
红联Linux门户
Linux帮助

帮忙看一个小程序

发布时间:2005-05-10 12:33:18来源:红联作者:weib5337
#include "stdio.h"
main()
{char a[10],*p;
p=a;
for(;;p++)
{*p=getchar();
if(*p=='\n') break;
}
for(;p>=a;p--)
{printf("%c",*p);
}
}
/*abcdefghijklmnopqrstuvwxyz

zyxwvutsrqponmlkjihgfedcba
*/
后面注释行是运行的结果,我声明了一个长为10的数组,为什么超过10以后也没有出错呢?
我是初学的,请指教。
文章评论

共有 2 条评论

  1. weib5337 于 2005-05-12 20:34:08发表:

    试过了,确实在a[i]里不是所写入的值,不过为什么这样写,却可以写入到a[i]:
    for(i=0;i<10;i++)
    {scanf("%c",p++);
    }

  2. yuze 于 2005-05-11 21:57:52发表:

    再这里实际上a[]只起了个决定p首地址的作用。在关键部分你都没有用到a[],所以似乎a[]没有起到界定字符的长度的作用。如果你把输出定为a[i]的话,可以看看是不是只输出前10个字符。