İçeriği Paylaş:

İŞARETÇİLER

1. İŞARETÇİLERHemen hemen bütün programlama dillerinin temelinde işaretçi(pointer) veri tipi bulunmaktadır. Birçok dil işaretçi kullanımınıkullanıcıya sunmamıştır veya çok sınırlı olarak sunmuştur. Fakat CProgramlama Diliʹnde işaretçiler yoğun olarak kullanılır. Hatta işaretçikavramı C dilinin bel kemiğidir. Kavranması biraz güç olan işaretçileriçin ‐latife yapılıp‐ C kullanıcılarını ʺişaretçi kullanabilenler vekullanmayanlarʺ olmak üzere iki gruba ayıranlar da olmuştur. Özetle,bir C programcısı işaretçi kavramını anlamadan C diline hakim olamaz.Türkçe yazılan C kitaplarda pointer kelimesi yerine aşağıdaki ifadelerdenbiri karşılaşılabilir:pointer = işaretçi = işaretçi = gösterge1.1. Değişken ve Bellek AdresiBilgisayarın ana belleği (RAM) sıralı kaydetme gözlerindenoluşmuştur. Her göze bir adres atanmıştır. Bu adreslerin değerleri 0 ilabelleğin sahip olduğu üst değere bağlı olarak değişebilir. Örneğin 64 MBbir bellek, 64*1024*1024 = 67108864 adet gözden oluşur. Tabi günümüzbilgisayarları düşünüldüğünde örnekten katlarca fazlası olacaktır.Değişken tiplerinin bellekte işgal ettiği alanın bayt cinsinden uzunluğusizeof() operatörüyle öğrenilir.Örnek:#include “stdio.h”#include “conio.h”void main(){int m,n;n=sizeof(m);printf(“Size of m= %d”,n);getch();}Çıktı: Size of m= 2Bir  programlama  dillinde, bir değişken tanımlanıp  bir değer atandığında, o değişkenin dört temel özelliği olur :

  • değişkenin adı
  • değişkenin tipi
  • değişkenin sahip olduğu değer (içerik)
  • değişkenin bellekteki adresi

Örneğin tam adlı bir tamsayı değişkenini aşağıdaki gibi tanımladığımızı varsayalım:int a = 33;Bu değişken için, int tipinde bellekte (genellikle herbiri 1 bayt  olan2  bayt  büyüklüğünde) bir  hücre  ayrılır  ve  o ücreye 33  sayısı ikilik (binary) sayı sitemindeki karşılığı olan 2 baytlık (16 bitlik):00000000 00100001sayısı elektronik olarak yazılır.tam değişkenine ait dört temel özellik aşağıdaki gibi gösterilebilir:Ekran Alıntısı (1)Bellek adresleri genellikle  onaltılık (hexadecimal) sayı   sisteminde ifade edilir. 0x3fffd14 sayısı  onluk  (decimal)  sayı  sisteminde 67108116 sayına karışık gelir.  Bunun  anlamı,  tam  değişkeni,  program   çalıştığı sürece,  bellekte   67108116.  ‐   67108118.  numaralı  gözler  arasındaki   2 baytlık  hücreyi  işgal  decek  olmasıdır.  Şekildeki  gösterim,  basit  ama anlaşılır bir tasvirdir. Gerçekte, int tipindeki tam değişkeninin bellekteki yerleşimi ve içeriği (değeri) şu şekilde olacaktır:Ekran Alıntısı (1)Şekil 2. tam adlı değişkenin bellekteki gerçek konumu ve ikilik düzendeki içeriğiDeğişkenin  saklı olduğu adres, &   karakteri  ile tanımlı adres operatörü ile öğrenilebilir. Bu operatör bir değişkenin önüne konursa, o değişkenin  içeriği  ile değil adresi  ile   ilgileniliyor  anlamına gelir. Aşağıdaki program parçasının:int tam = 33;printf(“icerik: %d”,tam);printf(“adres : %p”,&tam);çıktısı:içerik: 33adres : 3fffd14şeklindedir. Burada birinci satır tam değişkeninin içeriği, ikinci ise adresidir. Adres yazdırılırken %p tip belirleyicisinin kullanıldığına dikkat ediniz.

İçeriği Paylaş:
İlginizi Çekebilir
Yorum Yapılmamış

Henüz Hiç Yorum Yapılmadı..

Yorum Yaz

İŞARETÇİLER

Programlama 2

22/07/2016 | Yorum Yok | 31 | kucukakarsu