Chinaunix首页 | 论坛 | 博客
  • 博客访问: 253088
  • 博文数量: 53
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-01 10:17
文章分类

全部博文(53)

文章存档

2013年(53)

分类: C/C++

2013-08-26 22:37:22

在一定的条件下,两个指针可以进行比较运算,即可进行大于、小于、大于等于、小于等于、相等和不等的运算。任意的毫无关联的两个指针进行比较是毫无 意义的。例如,指向同一个数组的两个指针可以进行比较。如果两个指向同一个数组的指针相等,则表示这两个指针是指向同一个元素,否则两个指针不等,表示这 两个指针不是指向同一个元素,而是指向两个不相同的元素。

    [例7.3] 把一个字符串中的字符逆序输出。

    程序内容如下:
    Main()
    {
    Char s[]="abcdefgh"
    Char*p
    For(p=s+7;p+1!=s;p--)
    Print("%c"*p)
    Printf{"\n")
    }

    执行该程序输出结果如下:
    hgfedcba

    说明:程序中,定义了一个字符数组s,又定义了一个char型指针P.通过指针加上整数运算,先使指针P指向已知字符串的最后一个字符h,再输出p所指向 的字符,每次循环p指针减1,判断p+1与S是否相等,s是数组名,即是指向数组首元素的指针。如果P十1与s相等,则说明P将指向该数组首元素前边的一 个元素,该元素实际是不存在的,这时退出for循环,并完成对该字符串的逆序输出。

    该例中关于指针运算的应用有如下几点:

    (1)指针赋值。p=s十7;是一个赋值表达式语句,将s+7的值赋给指针P。
    (2)指针加减整数运算oP一一是指针减1表达式。
    (3)指针比较运算。p+1!=s,是一个关系表达式,判断P+1与s是否相等。

阅读(5785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~