第1个回答 2007-05-14
#include <stdio.h>
main()
{
int t=0; //定义一个整形变量并且赋值为0
char wb[255]; //定义一个字符叔祖
char* p = wb; //定义一个字符指针,并且指向字符数组的开始地址
printf("请输入一个正整数"); //
gets(wb); //输入一串数字,以回车结束,比如你输入123456\0 为例
while( *p ) //遇到'\0'时,结束循环,这里循环的意义就是用t记录你刚才输入字符的个数
{
p++; //地址自加一,指向下一个地址,开始指向wb[0],++后就指向wb[1],依次类推,直到结束
t++; //p每指向一个值,t就加1一次,记录数组内数值的个数
}
p--;//这里,p指向最后一个字符,也就是回车\0,所以要倒退一个地址,也就是指向6的地址
for( ; t > 0 ; t-- ) //这里的for循环就是输出了,
{
printf("%c",*p); //指针指向的内容,从最后一个开始输出,结果是654321
p--; //指向上一个地址,就是原来p指向最后一个数6的地址,p--后就指向5的地址,依次类推
}
printf("\n"); //输出换行
}本回答被提问者采纳
第2个回答 2007-05-14
#include <stdio.h>
void main()
{
int t=0;
char wb[255];
char* p = wb; //使P指针指向数组开头
printf("请输入一个正整数");
gets(wb);
while( *p ) //遇到'\0'时,结束循环
{
p++; // 指针指向数组的下一个元素
t++; //用T计数
}
p--; //因为结束循环时P指向'\0'
for( ; t > 0 ; t-- ) //下面是从数组的最后一个元素向前的顺序输出,不难理解吧
{
printf("%c",*p);
p--;
}
printf("\n");
}
第3个回答 2007-05-14
毫无意义的程序....wb[]数组没有初值,如果有的话,p的意思就是遍历这个数组,直到遇到0为止,而t则是不为0元素的个数...最后一个for循环输出这些值(倒序).......
而你这个程序,输入一正整数后,即赋值给了wb,即是wb[0],...实在不想说下去了.....楼主好自为之吧...
第4个回答 2007-05-14
a=p==&m;
p==&m 是逻辑运算
p当然不等于&m所以为0
再给a赋值 就是0了
就是这样