广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    指针运算的优先级:++、*

    来源:网络收集  点击:  时间:2024-02-22
    【导读】:
    一元运算符 * 和 ++ 具有相等的优先级别,但是在运算时它是从右向左顺序进行的。即,在 *p++中,++ 应用于p而不是应用于*p,实现的是指针自增1,而非数据自增1。下面,通过下面的例子说明这个微妙之处。工具/原料more电脑,vc6.0, xp方法/步骤1/4分步阅读

    启动VC6.0,并新建工程,然后在工程目录下新建order.c文件。

    2/4

    order.c文件代码如下:

    3/4

    从上述代码文件中我们可以知道:

    p1=p2=data; //将data数组的首地址赋给指针

    p3=moredata;//将moredata数组的首地址赋给指针

    printf( *p1 = %d, *p2 = %d, *p3 = %d\n, *p1 ,*p2 , *p3);//分别打印输出数组data、moredata的首元素

    printf( *p1++ = %d, *++p2 = %d, (*p3)++ = %d\n, *p1++, *++p2 ,(*p3)++);//体现了数组与指针一元运算符 * 、++之间的微妙之处。

    *p1++ 实现了先输出p1所指地址处的数据值,即100,然后指针后移到下一指针处,指向200

    *++p2 实现了先将指针指向后移,再输出此时指针所指处的数据的值,即200

    (*p3)++ 实现的是将指针p3所指向地址处的数据值(300)输出后再自增1,得301

    4/4

    对该工程进行编译连接执行得运行结果:

    注意事项

    注意* ++ 的运算顺序

    自增运算符++在前与在后的运算顺序

    优先级
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_106468.html

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-23 01:28:19  耗时:0.028