ホームページ >バックエンド開発 >C++ >C/C++ R-Value 式に関するパズル?

C/C++ R-Value 式に関するパズル?

WBOY
WBOY転載
2023-09-15 18:05:021098ブラウズ

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

ここでパズルを見てみましょう。以下のようなプログラムがあるとします。出力内容とその理由を伝える必要があります。

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

それでは、出力は何になるでしょうか? ~x は補数演算を実行しています。では、2 の補数の結果は 16 進数で表示されるのでしょうか?

出力は次のとおりです

出力

ab

したがって、変更はありません。しかし、なぜ?その理由は、~x が x をその補数形式に変換しているにもかかわらず、値がどの変数にも割り当てられていないためです。この式は R 値式です。左辺値は、使用されるまで変数に格納されません。 L 値を入力すると、次のようになります。 -

Example

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

Output

ffffff54

以上がC/C++ R-Value 式に関するパズル?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。