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

  • ICON

    ICON

    19 EKİM 2011
  • kimaliz

    kimaliz

    18 Temmuz 2006
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010