房天下 > 房天下问答 > 业主生活 > 其他
  • 懂C语言的高手进

    #include "stdio.h"void main(){ int a=2,*p=&a,*q=&a;printf("%d %d\n",*p++,*(q++));p=&a;q=&a;printf("%d %d\n",*p,(*q)++);}这个程序的运行结果是什么?其中这里的*p++,*(q++),还有(*q)++)到底是怎么运算的啊?

    提问者:文昌娱乐城

    发布于2011-01-11

共1个回答
  • nxuliyuan 丨Lv 0
    *p++只是C语言的一种表达方式,其它计算机语言很少使用这种表达方式。这表达确实有争议,他破坏了逻辑性。 这个表达式实际上是两个独立的表达式:*p;p++; 因为是两个独立的表达式所以不存在运算符优先的问题,谁在前谁先算。所以不管怎么样都会先算*p. 后置++:遇到++时就取值,遇到=号才赋值。这意味着后置++要等表达式运行完后才对自身+1,你的问题中几个达式都是后置++。
    +1 2011-01-11 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。