首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >| operator、++、i operator

| operator、++、i operator
EN

Stack Overflow用户
提问于 2012-03-20 12:40:09
回答 6查看 447关注 0票数 3

我想我会得到12,而不是7w++,那么w将是4,它是100,而w++w将是81000;所以w++|z++将是<代码>D11将是<代码>D12。

我哪儿不好?

代码语言:javascript
复制
int main()
{
    int  w=3, z=7; 
    printf("%d\n", w++|z++);
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-20 12:42:21

问题是,通过使用w++|z++,您首先使用的是w和ORing的值,该值与z的当前值相加,然后递增。改为使用++w|++z,数字将首先递增,然后使用。

代码语言:javascript
复制
int main()
{
    int x = 10;

    // prints 10
    printf("%d\n", x++);
    // prints 11
    printf("%d\n", x);

    x = 10;
    // prints 11
    printf("%d\n" ++x);
    // prints 11
    printf("%d\n" x);
}

使用--xx--也可以做到这一点。有关详细信息,请参阅this relevant question

票数 2
EN

Stack Overflow用户

发布于 2012-03-20 12:42:32

您误解了后缀++运算符。变量的值在变量递增之前使用。对于++w|++z中的前缀++运算符,您的分析将是正确的。

票数 3
EN

Stack Overflow用户

发布于 2012-03-20 12:42:50

这些是后增量运算符;它们在运算后生效,因此在运算中使用3和7。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9781437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档