gcc-10 ile biraz farklı sonuçlar cıktı. Senin SS'teki Microsoft C/C++ Optimizing Compiler, farklı sonuç veriyor olabilir. < Resime gitmek için tıklayın >
Satır: *ptr, i={1,2,3,4,5} dizisindeki ilk elemanı gösteriyor ve bu değer print ediliyor. Yani 1.
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.
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.,
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.
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 >
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ı?
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi trgtyt -- 5 Temmuz 2021; 23:11:43 >
< Bu ileti Android uygulamasından atıldı >