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
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.
Ne'noktası sabit void s?...
C noktası matematik sabit#?...
Sabit Zaman Amorti...
Lambda sabit başvuru olarak yakalama?...
C tipi işaretsiz char * karakter *sabi...