23 Kasım 2011, ÇARŞAMBA
&; if (() & & b=!" null)" will " ()&; her zaman değerlendirilecek?"
Böyle bir kod var:
if (a() && b != null) {
b.doSomething();
}
b
null
bile a()
yan etkisi ihtiyacım var. C ile garanti altına alınmıştır.? Ya da C ** 6 ** 7 *ihmal* 5 * diyebilir?
CEVAP
23 Kasım 2011, ÇARŞAMBA
Evet, a()
Her zaman değerlendirilecektir.
Durumu doğru, a()
soldan değerlendirilir beri her zaman değerlendirilir, ancak b != null
a()
true
iade halinde değerlendirilir.
İşte C senin için tam özellik bir referans,# Dil Belirtimi sürüm 3.0. Vurguları ve benim elisions.
7.11.1 koşullu mantıksal operatörler Boolean
&&
||
işlenen 15 ** tür olduğunda [...] işlemi aşağıdaki gibi işlenir
- Operasyon
x && y
x ? y : false
olarak değerlendirilir. Başka bir deyişle,x
içinde ilkdeğerlendirilmiş ve tip bool dönüştürülür. Daha sonrax
doğruysa, y ve bool türü için değerlendirmeye dönüştürülür ve bu sonucu olur operasyon. Aksi takdirde, işlem sonucu false olur.
Bunu Paylaş: