房天下问答 >业主生活>其他> 问题详情

懂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)++);}这个程序的运行结果是什么?... 展开
文昌娱乐城|2011-01-11 09:27

其他答案

nxuliyuan

*p++只是C语言的一种表达方式,其它计算机语言很少使用这种表达方式。这表达确实有争议,他破坏了逻辑性。 这个表达式实际上是两个独立的表达式:*p;p++;因为是两个独立的表达式所以不存在运算符优先的问题,谁在前谁先算。所以不管怎么样都会先算*p. 后置++:遇到++时就取值,遇到=号才赋值。这意味着后置++要等表达式运行完后才对自身+1,你的问题中几个达式都是后置++。
2011-01-11 11:44
来自北京市

免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。

关于我们网站合作联系我们招聘信息房天下家族网站地图意见反馈手机房天下开放平台服务声明加盟房天下
Copyright © 北京搜房科技发展有限公司
Beijing SouFun Science&Technology Development Co.,Ltd 版权所有
违法信息举报邮箱:jubao@fang.com
返回顶部
意见反馈