首页 > 后端开发 > C++ > C/C++ R-Value表达式上的谜题?

C/C++ R-Value表达式上的谜题?

WBOY
发布: 2023-09-15 18:05:02
转载
1103 人浏览过

C/C++ R-Value表达式上的谜题?

这里我们将看到一个谜题。假设有一个如下所示的程序,我们必须告诉输出什么以及为什么?

示例

#include<iostream>
using namespace std;
int main() {
   int x = 0xab;
   ~x;
   cout << hex << x;
}
登录后复制

那么输出是什么? ~x 正在执行补码操作。那么它是否以十六进制形式显示补码结果?

输出如下

输出

ab
登录后复制

所以,没有变化。但为什么?原因是 ~x 正在将 x 转换为其补码形式,但该值未分配给任何变量。该表达式为R值表达式。在使用左值之前,它不会被存储到某些变量中。如果我们输入 L 值,它将如下所示 -

示例

#include<iostream>
using namespace std;
int main() {
   int x = 0xab;
   x = ~x;
   cout << hex << x;
}
登录后复制

输出

ffffff54
登录后复制

以上是C/C++ R-Value表达式上的谜题?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板