[解決済み] 記号の意味は?
2022-03-14 02:15:51
質問
このプログラムでは、==記号は何を意味しているのでしょうか?
int main()
{
int x = 2, y = 6, z = 6;
x = y == z;
printf("%d", x);
}
解決方法は?
その
==
演算子が等しいかどうかをテストします。例えば
if ( a == b )
dosomething();
そして、あなたの例では
x = y == z;
x は、y が z と等しい場合、真 (1) になります。 ない がzと等しい場合、xは偽(0)となる。
C言語の初心者プログラマーがよく犯すミス(そして、非常に経験豊富なプログラマーも犯すタイプミス)です。
if ( a = b )
dosomething();
この場合、bはaに代入され、ブーリアン式として評価されます。プログラマーが意図的にこのようなことをすることがありますが、これは悪い形式です。コードを読む他のプログラマーには、意図的にやったのか(めったにない)、不注意でやったのか(もっと多い)わからないでしょう。よりよい構成は以下の通りです。
if ( (a = b) == 0 ) // or !=
dosomething();
ここでは、bとaを代入し、その結果を0と比較しています。(興味深いことに、純粋なC言語を書いたことがないC#プログラマーと仕事をしたことがあるが、これが何をするものなのか分からなかった)
関連
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】JavaScriptの関数式の前にプラス記号がある場合
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み】「構造体でもユニオンでもないものにメンバー'*******'を要求する」とはどういう意味ですか?
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】malloc():メモリ破壊
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】警告:式の結果が未使用の場合
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?