打印

a = a++ % 2; ===????

[复制链接]
1299|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
心有所xiang|  楼主 | 2013-10-31 11:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>

static int a = 0;
int b = 20;
int main()
{
        do
        {
                //a++;
                a =  a++ % 2;
                printf("a = 0x%x\n",a);
        }
        while(b--);
        return 0;
}
请解释下,,,卡带了。。。。谢谢。

相关帖子

沙发
香水城主| | 2013-10-31 11:38 | 只看该作者
输出20次 a=0x0

使用特权

评论回复
板凳
ayb_ice| | 2013-10-31 11:40 | 只看该作者
不要写这种怪异的代码

使用特权

评论回复
地板
NE5532| | 2013-10-31 12:01 | 只看该作者
不要写出自己不懂,机器也不知道会怎么执行的代码——谭浩强。

拆开来写,少玩一点技巧。

使用特权

评论回复
5
lhchen922| | 2013-10-31 13:06 | 只看该作者
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
a = 0x2
a = 0x1
Press any key to continue

vc6的结果,,优先级的问题吧。

使用特权

评论回复
6
黄小俊| | 2013-10-31 14:02 | 只看该作者
我觉得不管什么优先级,一概有括号。。

使用特权

评论回复
7
diweo| | 2013-10-31 14:57 | 只看该作者
这个地方就算加括号也没用。
a=a++%2,或者a=(a++)%2,都相当于a=a%2;a=a+1;
初值a=0,结果就是1,2,1,2。。。

使用特权

评论回复
8
陈安业| | 2013-10-31 16:06 | 只看该作者
你a%2的值始终不能超越极限跳出2,所以循环往复的1,2,1,2,。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

12

帖子

0

粉丝