请告诉我程序运行的结果!

来源:百度知道 编辑:UC知道 时间:2024/06/15 09:51:23
阅读下列程序(C语言),写出程序运行的结果:
#include <stdio.h>
void main()
{char b[]="Goodbye";
char *pb=&b[7];
while(--pb>=&b[0]) putchar(*pb);
putchar('\n');
}
如果程序有错,错在哪里?

结果为eybdooG

程序有错!

程序没错. 一句一句的分析一下:
char *pb=&b[7]; 那么现在指针pb存储的地址是b[7]的地址,也就是那个'\0'的地址;
while(--pb>=&b[0]) putchar(*pb);
也就是pb不断地自减, 直到pb < b[0], 也就是字符串b的开头. 那显然就是倒序输出这个字符串, 所以输出的是:
eybdooG