問題タブ [relational-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
42 参照

c - C 関係演算子 if-else

n の if-else は「はい」を出力するはずです が、出力は「いいえ」
です なぜ0<n<1000機能しないのですか

0 投票する
4 に答える
142 参照

c++ - const char* 文字列はどのように比較されますか?

まず、次の例を考えてみましょう。

私は何を期待していますか:「123」は であるため、これらの文字列のconst char*アドレス(これらの回答の1つが言ったように)が比較されることを期待しています。

... !=and==は、これらの文字列のベースアドレスのみを比較するためです。文字列自体の内容ではありません。

しかし、それでも出力は1. わかりました、2 つの prvalue オブジェクトのアドレスを比較する方法が実際にはわかりません (または、少なくともどのように行われるかわかりません)。これらの文字列を変数として宣言して、何が起こるか見てみましょう。

それでも出力は1. const char*弦は腐らないのですか?または、コンパイラはいくつかの最適化を行い、1 つの文字列のみにメモリを割り当てることができましたか? では、それらを回避してみましょう:

それでも結果は同じです。const char*それは本当に腐らないと思いました。しかし、それは私の人生をより単純にしませんでした。では、s はどのようにconst char*比較されるのでしょうか。

なぜここに出力があるのですか1

abは、辞書的比較では より小さいですが、こちらのa方が大きいです。s の比較はどのようにconst char*実装されますか?

0 投票する
1 に答える
54 参照

c - 関係演算子

test以下の場合の関数の結果について混乱してい-1ます。

0x0135fb00今は私のdaの値とaのアドレスです
0x0135faf4今は私のdbの値とbのアドレスです

私の知る限り、関係演算子は True の場合は 1、False の場合は 0 を返すため、この場合は次のようにする必要があります。

*da > *db --> 1
(a のアドレス) の値は(b のアドレス) のda値よりも大きいためです。 (aのアドレス)の値は(bのアドレス)の値より小さくないからです。 したがって、1-0 は 1 です。 具体的に言うと、da の値と db の値をデバッガーで比較することで、この結論に達しました (デフォルトの C コンパイラで Visual Studio を使用しています)。私は何が欠けていますか? PS: GNU の公式 Web サイトでこのコードを見つけました。db
*da < *db --> 0
dadb