[elektro] strcmp

potyo potyo.ada at gmail.com
Wed May 5 21:17:15 CEST 2010


Az egész kifejezés értéke is d lesz, ez a C szabványból ered. Pl.
írhatsz d=b=c+2; sort, ezesetben először b megkapja c+2 értékét, majd
d megkapja b értékét, mert a d-hez tartozó = jel jobboldali
kifejezésének értéke is b. Futásidőben nincs ellenőrzés arra
vonatkozóan, hogy sikeres-e az értékadás. Ha a fordító megeszi, akkor
az már jónak van tekintve (fordító meg pl. akkor nem eszi meg, ha
konstansnak akarsz értéket adni vagy const-nak definiált változónak,
ilyesmi).

Alapvetően C-ben nincs true és false. C-ben nulla és minden más a két
logikai érték. Ezért megfelelő az if (a=1)  is, mert a zárójelben levő
értékadás értéke is 1, vagyis nullától különbözik.

Hofferek Attila <hofi at soka.co.hu> írta (2010. május 5. 21:07):
> 2010.05.05. 20:59 keltezéssel, potyo írta:
>> Nem a siker a lényeg, mert alacsony szinten nincs olyan, ami nem
>> sikerül. A lényeg a két karakter különbsége, ami nulla lesz, ha
>> azonosak a karakterek, és nem nulla, ha nem azonosak.
>
> Az oke, az a d-ben lesz, de az egesz kifejezes ami zaroljelben van, true
> lesz, mint sikeres ertekadas, nem?
>
> if(a=1)
> {
> stb
> }
>
> is mindig true, mert mindig sikerul az ertekadas, kezdok szoktak elkurni
> = irni == helyett
>
> -----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list