Şimdi Ara

Pointers C++

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
6
Cevap
0
Favori
133
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Pointers C++

    3 ve 4. Satırda neden bir önceki satırda gösterdiği değerin 1 fazlasını göstermedi?
    3. Satır: 3
    4. Satır: 4 neden olmadı?



    < Bu mesaj bu kişi tarafından değiştirildi trgtyt -- 5 Temmuz 2021; 23:11:43 >
    < Bu ileti Android uygulamasından atıldı >



  • gcc-10 ile biraz farklı sonuçlar cıktı. Senin SS'teki Microsoft C/C++ Optimizing Compiler, farklı sonuç veriyor olabilir.
    Pointers C++

    < Bu ileti mini sürüm kullanılarak atıldı >
    1. Satır: *ptr, i={1,2,3,4,5} dizisindeki ilk elemanı gösteriyor ve bu değer print ediliyor. Yani 1.
    2. Satır : ++*ptr ile dizin birinci elemanının değeri bir artırılıyor. Yeni dizi i={2,2,3,4,5} oluyor. Hala pointer dizin 1. elamanını yani yeni 2 yi gösteriyor ve bu değer print ediliyor.
    3. Satır: *++ptr ile önce pointer adresi dizinin ikinci elemanına taşınıyor ve dizin ikinci elemanının değeri yani 2 print ediliyor.,
    4. Satır: *ptr++ ile pointer hala dizinin 2. elemanını gösterirken 2 değeri print ediliyor ve print işleminden sonra pointerin gösterdiği adres bir artırılıyor. Artık pointer dizinin 3. elemanını gösteriyor.
    5. Satır: *ptr ile pointerin gösterdiği dizin 3. elemanındaki değer olan 3 değeri print ediliyor.


    Pointer konusunda farklı derleyecilerin veya derleyeci optimizasyonlarının hata yapması veya farklı değerler üretmesi kabul edilemez bir hata/eksiklik olur. :)


    Edit: 4. maddedeki yanlışlık düzeltildi.




    < Bu mesaj bu kişi tarafından değiştirildi rafet32 -- 6 Temmuz 2021; 18:32:10 >




  • Dizin elemanlarını şu şekilde değiştirirseniz sonuçları yorumlamak çok daha kolay olur.


    Pointers C++
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.