免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: HopeCao
打印 上一主题 下一主题

这个只有两行的C程序至少有80%的人会判断错,不信的就进来! [复制链接]

论坛徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
161 [报告]
发表于 2012-12-19 12:41 |只看该作者
HopeCao 发表于 2003-02-24 17:27
#include;
void main()
{


有 i >;>; 5; 这种写法吗?
编译都过不了呀。

论坛徽章:
0
162 [报告]
发表于 2013-03-21 22:29 |只看该作者
c 吧,我记得自增好像是要完成之后才实现的

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
163 [报告]
发表于 2013-04-01 16:33 |只看该作者
HopeCao 发表于 2003-02-24 17:26
#include;
void main()
{


明显是c。
ptr++之后,()里这个表达式的值依然是增加之前的ptr的值。

论坛徽章:
0
164 [报告]
发表于 2013-04-01 18:19 |只看该作者
这两个不难吧。。*(ptr++),当然 是先*ptr 再ptr++.第二个题目不是 i >;>; 5;
吧。。是不是分号多了。i>>5。如果是这样的当然i再移位移的多,也不会改变当前i的值。

论坛徽章:
0
165 [报告]
发表于 2013-04-07 11:24 |只看该作者
经过实践,得出 第一段代码结果为 a ,第二段代码结果为 10 。
*(p++) 加不加括号好像没影响。都是先执行再++
i = 10;
i << 1;
i >> 5;
i 的值是不变的。

论坛徽章:
0
166 [报告]
发表于 2013-11-12 19:51 |只看该作者
如果不确定*(ptr++)和*ptr++是如何运算的,其实不一定非要这样写啊

如果你是想先取内容再地址增一,可写成取内容*ptr,然后再ptr++;

如果是地址先增一再取内容,可写成ptr++;然后取*ptr

这不好过你原先那么写?原先的写法容易让人搞迷糊,不熟悉就不赞成这么写
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP