C ++ Notları: Dizi Başlatma , dizilerin başlatılması üzerinde güzel bir listeye sahiptir. Sahibim
int array[100] = {-1};
-1 ile dolu olmasını beklemek ama değil, sadece ilk değer ve geri kalanı 0 rastgele değerlerle karıştırılır.
Kod
int array[100] = {0};
gayet iyi çalışır ve her öğeyi 0 olarak ayarlar.
Ben burada ne eksik .. Değeri sıfır değilse kimse başlatamaz mı?
Ve 2: Varsayılan başlatma (yukarıdaki gibi) tüm dizi boyunca olağan döngüden daha hızlı mıdır ve bir değer atar mı yoksa aynı şeyi yapar mı?
{0}
yapılar veya diziler için özel bir durum değildir. Kural, başlatıcısı olmayan öğelerin, bir başlatıcısıymış gibi 0
başlatılmalarıdır. İç içe toplamalar (örn. struct x array[100]
) Varsa, başlatıcılar toplanmayanlara "satır-büyük" sırayla uygulanır; bunu yaparken isteğe bağlı olarak parantezler atlanabilir. struct x array[100] = { 0 }
C'de geçerlidir; ve ilk üye başlatıcı olarak struct X
kabul ettiği sürece C ++ 'da geçerlidir 0
.
{ 0 }
C'de özel değildir, ancak herhangi bir kurucu olmadığından ve 0
dolaylı olarak bir şeye dönüştürülüp atanmaktan vazgeçmenin bir yolu olmadığından, kendisiyle başlatılamayacak bir veri türü tanımlamak çok daha zordur .