C Programlama #34 | const ve İşaretçiler
İşaretçiler (Pointers)Eğitmen: Dr. Süleyman Burak ÇELİK
Yalnızca ekrana yazması gereken bir fonksiyon, işaretçi üzerinden notu değiştirirse ne olur? Otuz dördüncü derste en az yetki ilkesini derleyiciye denetletiyoruz: const ve işaretçilerin dört birleşimi. Notu yazan küçük bir fonksiyon, karşılaştırmada iki eşittir yerine tek eşittir yazıldığı için notu değiştiriyor: *p = 100 bir atama, değeri 100 sıfırdan farklı olduğundan koşul doğru sayılıyor; gcc uyarıyor ama derliyor ve program 85 olan nota tam puan yazıp main'de notu 100 yapıyor. Parametreyi const int *p yapınca aynı yazım hatası derlenmiyor: gcc 'assignment of read-only location', clang 'read-only variable is not assignable' diyor; hata program çalışmadan yakalanıyor ve düzeltilmiş sürümde not 85 kalıyor. Tanımları sağdan sola okuyoruz: const int *p'de gösterilen veri sabit ama işaretçi başka bir yeri gösterebilir (gerçek çalıştırmada önce a: 70, sonra b: 55); int *const p hep aynı yeri gösteren sabit bir işaretçi; const int *const p'de ikisi de sabit. Dört birleşimi gerçek programlarla görüyoruz: char *s ile ada lovelace büyük harfe çevriliyor, const char *s ile harfler yalnızca okunuyor ([A][d][a]), int *const p'de *p = 7 kabul ama p = &y iki derleyicide de hata, const int *const p'de iki satır da hata; sonuçları bir tabloda topluyoruz. const türün bir parçasıdır ve sessizce atılamaz: const bir değişkenin adresini const olmayan bir işaretçiye verince gcc ve clang uyarıyor. Son olarak en az yetki ilkesini ve bugünün dört kuralını özetliyoruz. Ekrandaki her çıktı, kodun gerçekten derlenip çalıştırılmasından geliyor. Bu derste: 1. Yalnız yazdırması gereken fonksiyon notu bozuyor: = ile == tuzağı 2. const int *p: derleyici hatayı çalışmadan yakalıyor 3. Sağdan sola okuma: const int *p, int *const p, const int *const p 4. Dört birleşim gerçek programlarla ve bir tabloda 5. const sessizce atılamaz; en az yetki ilkesi Bölümler: 0:00 const ve işaretçiler 0:15 Yalnız yazdırması gereken fonksiyon 0:55 const ile derleyici durdurur 1:25 Sağdan sola: ne sabit? 2:12 İlk iki birleşim 2:50 Sabit işaretçi 3:36 const sessizce atılamaz 4:02 Hangisini seçmeli? 4:27 Bugünün dört kuralı 4:52 Sonraki ders: başvuru ile kabarcık sıralaması Kaynak kitap: Paul Deitel, Harvey Deitel — C How to Program, 9. baskı (2022), §7.5. Konu sırası ve kavramlar kaynak kitaptan izlenir; anlatım, örnekler ve ekranlar özgündür. Hedef kitle: C'ye yeni başlayan tüm mühendislik ve bilgisayar/yazılım öğrencileri. Ön koşul: C Programlama #01–#33.
Bu videoyu izlemek için Premium üyelik gerekir.