
这里我们将看到一个谜题。假设有一个如下所示的程序,我们必须告诉输出什么以及为什么?
#include<iostream>
using namespace std;
int main() {
int x = 0xab;
~x;
cout << hex << x;
}那么输出是什么? ~x 正在执行补码操作。那么它是否以十六进制形式显示补码结果?
输出如下
ab
所以,没有变化。但为什么?原因是 ~x 正在将 x 转换为其补码形式,但该值未分配给任何变量。该表达式为R值表达式。在使用左值之前,它不会被存储到某些变量中。如果我们输入 L 值,它将如下所示 -
立即学习“C++免费学习笔记(深入)”;
#include<iostream>
using namespace std;
int main() {
int x = 0xab;
x = ~x;
cout << hex << x;
}ffffff54
以上就是C/C++ R-Value表达式上的谜题?的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号