首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将左移运算的结果直接赋值给变量和C中的左移赋值操作有什么不同?

将左移运算的结果直接赋值给变量和C中的左移赋值操作有什么不同?
EN

Stack Overflow用户
提问于 2017-05-30 14:40:16
回答 1查看 1.6K关注 0票数 18

在下面的表达式中,左移位运算的结果被赋值给变量i

代码语言:javascript
复制
int i;
i = 7 << 32;
printf("i = %d\n",i);

在下面的表达式中,执行左移位赋值操作。

代码语言:javascript
复制
int x = 7;
x <<= 32;
printf("x = %d\n",x);

上述两个表达式给出了不同的结果。但这与以下两个表达式不同。他们都给出了相同的结果。那么,上述表达式返回不同值的原因可能是什么呢?

代码语言:javascript
复制
int a;
a = 1 + 1;
printf("a = %d\n",a);

int b = 1;
b += 1;
printf("b = %d\n",b);
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44255195

复制
相关文章

相似问题

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