1=2をC言語で証明してみた 25 Comments | Cantinho do Vídeo By Adm · August 17, 2026 参考文献: (2025-08-23 閲覧) 音楽: MusMus === X: Discord: source
条件式の=だとclangことLLVM11が「こりゃ代入じゃヴォケ (“one == to”)にして出直せコラ」って言ったから言われた通りにしたら実行されないンゴ…環境の問題なのか? 自分用にまとめるとこれone(=1)にtwo(=2)を代入するから真であると見做す故“1=2“が出力されたってことであってんだよな Reply
if(one = two)の評価は、まず代入処理が行われ、変数oneが2になる。その後、if(one)の形に置き換わり、数値2はtruthlyなのでif文が成立する。よってputsが実行され、見事1 = 2が証明されたのだ。ワザマエ! Reply
久々にプログラム書くとうっかりやるやつ
初心者あるあるw
構文エラーにしろよ! って思いたい気持ちはわかるけど
構文は何も間違っていないからな…
1👈2なんだよな。
条件式の=だとclangことLLVM11が「こりゃ代入じゃヴォケ (“one == to”)にして出直せコラ」って言ったから言われた通りにしたら実行されないンゴ…環境の問題なのか?
自分用にまとめるとこれone(=1)にtwo(=2)を代入するから真であると見做す故“1=2“が出力されたってことであってんだよな
プログラミング初学者をちょっとだけ騙せそうで面白い
if文が機能しないのは、バグの温床になるから止めろ!
two=2まで代入してたのに癖でifの中結んじゃってたからわからんかった…
あ、そうかC言語の=って「等しい」じゃなくて「左辺に右辺を入れる」だっけ
今回はintを使ったintikiじゃなかったか…
一回printってかこうとしてるの
print("1=2")
これって、()の条件部に真偽値でない値も入るのがポイントで、()内を評価した値が0か非0かを見ているんだよね
真偽を判定しているとは限らないってわけ
if(one = two)の評価は、まず代入処理が行われ、変数oneが2になる。
その後、if(one)の形に置き換わり、数値2はtruthlyなのでif文が成立する。
よってputsが実行され、見事1 = 2が証明されたのだ。
ワザマエ!
BASIC だと、本来の書式は
LET A=1
で、その後 LET は省力可能になった
==にしてないからか()
ちょいちょいやらかすこれ
よく見たら==じゃねえじゃねーか!!!
1=2は可能(?)でも、0=0は証明できない…
疲れてたら見落としそうなバグだ。
チルノ「罠だ!これは罠だ!魔理沙があたいを陥れるために仕組んだ罠だ!1と2の値が等しいなんておかしいじゃないか!」
魔理沙「C言語での”=“は代入演算子だと言ったじゃないですか」
if((one = two) == two){
puts("1 = 2")
}
ああ、Cだと代入だったか
最近イコール1個で比較演算子になる言語使ってたからすぐ気づけなかったわ
ネタバレの解説しないとバカが勘違いしそう
昔は散々やったわ。今は基本C# 書いてるからこういうのは書けない。
if文の括弧の中での代入はPowerShellでよくやるわ
めっちゃ便利