C语言程序分析 输出结果怎么得到的呢?求详解,谢谢!O(∩_∩)O~

[复制链接]
查看11 | 回复4 | 2012-9-21 23:20:09 | 显示全部楼层 |阅读模式
char str[]="xyz",*ps=str;定义一个字符数组,这里也可以叫字符串,然后定义一个字符指着ps指向str,while语句将指针遍历,并指向str末尾。判断条件是*ps='\0'for(ps--;ps-str>=0;ps--)puts(ps);}这里,ps指针从后开始想前遍历,并输出ps指针指向的内容。逆序...
回复

使用道具 举报

千问 | 2012-9-21 23:20:09 | 显示全部楼层
#include void main(){ char str[]="xyz",*ps=str;// ps指向str[0]的地址 while (*ps) ps++;// 这里使得ps指向str[3],值是'\0' for(ps--;ps-str>=0;ps--)// ps--,得到ps指向str[2],值是'z...
回复

使用道具 举报

千问 | 2012-9-21 23:20:09 | 显示全部楼层
在这里字符串数组和指针是一样的,因为你在声明时有*ps=str,while (*ps) ps++;这一条语句则将指针向数组方向偏移了n=strlen(str)个单位,而ps--又将该指针向该字符串逆向偏移,故为逆序输出...
回复

使用道具 举报

千问 | 2012-9-21 23:20:09 | 显示全部楼层
将字符串倒序输出,*ps=str;//将指针指向字符串开头while (*ps) ps++;//找到字符串的末端, for(ps--;ps-str>=0;ps--)//将字符串倒序输出puts(ps);...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行