
tamamdır şimdi demek istediğinizi anladım. ben != bunun gibi düşünmüştüm daha açık bir ifadeyle yani a = !b diye yazdığınız için net oldu. diğer türlü =! bu şekil de yaptığınızda sanki bir karşılaştırma ifadesi varmış gibi görünüyor.
ancak bir sıkıntı daha var şimdi..
if (expression)
statement1
[else
statement2]
Kaynak
Alıntı
where:
expression
An expression that can be implicitly converted to bool or a type that contains overloading of the true and false operators.
statement1
The embedded statement(s) to be executed if expression is true.
statement2
The embedded statement(s) to be executed if expression is false.
burada gördüğünüz gibi expression un bool türünden bir değer(bazı değerlerin cast edilerek bool a çevrilebilip kullanılabileceği de örn: 1 ve 0 bool a cast edilebilir) olduğu söyleniyor. Yani malum olarak if in içindeki ifade bir şarttır ve true-false değerlerinden birini döndermek zorundadır.
Şimdi arkadaşın yazmış olduğu kodda
if(satirsayisi_1=!sutunsayisi_2)
ifadesi var. sizin deyiminize göre
gibi bir ifadenin experssion olarak kullanılması için a ve b nin bool türünden birer nesne olması gerekli. Oysa burada arkadaş
int sutunsayisi_1,sutunsayisi_2
gibi bir integer nesne tanımlamış. Bu durumda derleyici =! ifadesini atama ifadesi değil de karşılaştırma ifadesi olarak görmüş olmak zorunda aksi halde bool türünden olmayan bir değer için derlenmemesi lazım.
ccs c derleyicisinde if in içindeki expression da true-false a alternatif olarak 1 ve 0 kullanılabilir. Acaba buradaki de aynı mantıkla mıdır?
Umarım sorumu anlatabilmişimdir