= vs == Boolean ifadeler
== işareti C bir sorun her şimdi ve sonra olabilir unutmak ve bir Boolean ifadesi = sadece yazın. Bu yapmak için kolay bir hatadır, ancak derleyici çok önemli bir fark vardır. C kabul edecek ya = ve bir Boolean ifadesindeki == - Programın davranışı, ancak ikisi arasında belirgin bir şekilde değişiyor
Boole ifadeleri C tamsayılar değerlendirmek ve tamsayılar Boole ifadeleri içinde kullanılabilir. . Başka tamsayı değeri true ise C tamsayı değeri 0, false. Aşağıdaki C yasaldır: a 0'dan başka bir şey ise,
printf ifadesi çalıştırılmaktadır
C, bir if deyimi gibi (a = b) anlamına gelir, " Ata. Bir b ve daha sonra Boole değeri için sınamak. " Yani 0, deyimi false ise olursa; Aksi takdirde, bu True. Işlemde bir değeri değişir. . Bu (doğru kullanıldığında bu özellik kullanışlı olsa da) == yazın anlamına eğer amaçlanan davranış, böylece = ve == kullanım
Düğümlenme ile dikkatli olun değildir: A Real Örnek
Diyelim Bir Fahrenheit-to-Celsius dönüşüm tablosunu yazdıran bir program oluşturmak istiyorum söylüyorlar. Bu kolayca döngü veya bir süre döngü bir ile gerçekleştirilir:
#include < stdio.h > (int main) {int a; a = 0; ise (bir Cs-= 100) {Printf ("% 4d derece F =% 4d derece C \\ N ° a;, (a - 32), * 5/9); a = a + 10; } 0 dönmek;}Bu programı çalıştırırsanız, F 0 derece başlayan ve çıkış gibi görünecektir F. 100 derece biten değerleri bir tablo üretecek:
0 derece F = -17 derece C 10 derece F = -12 derece C 20 derece F = -6 derece C 30 derece F = -1 derece C 40 derece F = 4 derece C 50 derece F = 10 derece C 60 derece F = 15 derece C 70 derece F = 21 ° C 80 ° F = 26 derece C 90 derece F = 32 derece C 100 derece F = 37 ° Ctablonun değerleri 10 derecelik artışlarla bulunmaktadır. Sen kolayca biten veya program ürettiği tablonun artış değerleri, başlangıç değiştirebilirsiniz görebilirsiniz
daha doğru olmasını değerleri isteseydim, bunun yerine nokta değerleri kayan kullanabilirsiniz.
#include < stdio.h > (int main) {a yüzer; a = 0; ise (bir Cs-= 100) {Printf ("% 6.2f derece F =% 6.2f derece C \\ N ° a;, (a - 32,0) * 5.0 /9.0); a = a + 10; } Return 0;}Bir için deklarasyon, bir şamandıra değiştirildi olduğunu görebilirsiniz, ve% f sembolü printf ifadesi% d