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

WBOY
リリース: 2023-09-15 18:05:02
転載
1074 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート