#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以后也没有出错呢?
我是初学的,请指教。
weib5337 于 2005-05-12 20:34:08发表:
试过了,确实在a[i]里不是所写入的值,不过为什么这样写,却可以写入到a[i]:
for(i=0;i<10;i++)
{scanf("%c",p++);
}
yuze 于 2005-05-11 21:57:52发表:
再这里实际上a[]只起了个决定p首地址的作用。在关键部分你都没有用到a[],所以似乎a[]没有起到界定字符的长度的作用。如果你把输出定为a[i]的话,可以看看是不是只输出前10个字符。