SORU
10 EKİM 2011, PAZARTESİ


Ne'noktası sabit işaretçiler s?

İşaretçiler hakkında değerleri sabit konuşmuyorum, ama inş göstericiler kendilerini.

Çok temel şeyler ötesinde C ve C öğreniyorum ve sadece bugüne kadar işaretçiler mantıklı fonksiyonları için değeri tarafından geçirilen anladım. Bu işlev içinde kopyalanan pointer arayan, özgün işaretçi etkilemeden başka bir değere işaret yapabilirim anlamına gelir.

Diyor ki: bu başlık bir işlevi olmasının ne anlamı var

void foo(int* const ptr);

Böyle bir işlev içinde bildiğimiz inş çünkü başka bir şey için işaret yapamazsınız, ama bu gibi bir işlevi değiştirilecek istemezsin:

void foo(int* ptr);

İş de yok! işaretçi kopyalanan her neyse ve arayanın işaretçiyi kopyalamak değiştirmek bile etkilenmez çünkü. İnş avantajı nedir?

CEVAP
10 EKİM 2011, PAZARTESİ


const C çok önemli bir kavram peşinde kullanmanız gereken bir araçtır:

Derleme zamanı yerine çalışma zamanı, derleyici ne demek zorla almak ile hata bulma.

İşlevselliği değiştirmeyecek olsa bile, const ekleme yapmak istemediğin şeyleri yaparken derleyici bir hata oluşturur. Aşağıdaki yazım hatası düşünün:

void foo(int* ptr)
{
    ptr = 0;// oops, I meant *ptr = 0
}

Eğer int* const kullanıyorsanız bu ptr değerini değiştiriyorsun çünkü derleyici bir hata oluşturur. Sözdizimi üzerinden kısıtlamalar ekleyerek genel olarak iyi bir şey. Sadece çok uzağa götürme.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • failblog

    failblog

    17 HAZİRAN 2008
  • Fullscreen

    Fullscreen

    23 Mart 2006