Temel Yönleriyle Fortran 90 / 95 / 2003 | |||||||||||||||
* Fortran'a Giriş
* fortran.gantep.edu.tr
|
Bölüm 11: Gösterici (Pointer) Kavramı
GirişHemen hemen bütün programlama dillerinin temelinde gösterici (pointer) veri tipi bulunmaktadır. Bir çok dil gösterici kullanımını kullanıcıya sunmamıştır veya çok sınırlı olarak sunmuştur. Gösterici, bellek alanındaki bir gözün adresinin saklandığı değişkendir. Özellikle C programlama dilinde yoğun olarak kullanılan bu veri tipi, Fortran 90 ile birlikte kullanıcıların hizmetine sunulmuştur. Türkçe yazılan C kitaplarda pointer kelimesi yerine aşağıdaki ifadelerden biri karşılaşılabilir:pointer = işaretçi = gösterici = gösterge Anlatımda, gösterici terimini kullanacağız. 11.1 Değişken ve Bellek AdresiBilgisayarın ana belleği (RAM) sıralı kaydetme gözlerinden oluşmuştur. Her göze bir adres atanmıştır. Bu adreslerin değerleri 0 ila belleğin sahip olduğu üst değere bağlı olarak değişebilir. Örneğin 64 MB bir bellek, 64*1024*1024 = 67108864 adet gözden oluşur. Fortran'da bir değişkenin ve değişken tipinin bellekte işgal ettiği alanın bayt cinsinden uzunluğu SIZEOF() fonksiyonu ile öğrenilebilir. (Bkz. Bölüm xx). Bir programlama dillinde, belli bir tipte değişken tanımlanıp ve bir değer atandığında, o değişkene dört temel özellik eşlik eder:
Örneğin Tam adlı bir tamsayı değişkenini aşağıdaki gibi tanımladığımızı varsayalım: INTEGER :: Tam = 33 Bu değişken için, INTEGER tipinde bellekte (32 bit makinalarda herbiri 1 bayt olan 4 bayt büyüklüğünde) bir hücre ayrılır ve o hücreye 33 sayısı ikilik (binary) sayı sitemindeki karşılığı olan 4 baytlık (32 bitlik): 00000000 00000000 00000000 00100001 sayısı elektronik olarak yazılır. Tam değişkenine ait dört temel özellik Şekil 11.1'deki gibi gösterilebilir:
Bellek adresleri genellikle onaltılık (hexadecimal) sayı sisteminde ifade edilir. Z'3fffd14' 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. - 67108120. numaralı gözler arasındaki 4 baytlık hücreyi işgal edecek olmasıdır. Şekil 11.1'deki gösterim, basit ama anlaşılır bir tasvirdir. Gerçekte, INTEGER tipindeki Tam değişkeninin bellekteki yerleşimi ve içeriği (değeri) Şekil 11.2'de gösterildiği gibi olacaktır.
11.2 Gösterici Nedir?Gösterici, bellek alanındaki bir gözün adresinin saklandığı değişkendir. Göstericilere veriler (yani değişkenlerin içeriği) değil de, o verilerin bellekte saklı olduğu hücrenin başlangıç adresleri atanır. Kısaca gösterici adres tutan bir değişkendir. Fortran'da, gösterici tipindeki bir değişken POINTER özelliği ile belirtilir. Gösterici tipinde tanımlanan bir değişken TARGET özelliği taşıyan bir değişkeni gösterebilir. Program 11.1'deki gibi bir kullanımda, PTam göstericisi Tam değişkeninin saklandığı adresi tutacaktır. Program 11.1: Gösterici Örneği
ÇIKTI
11.3 ASSOCIATED ve NULLIFY FonksiyonlarıBir göstericinin bir değişkeni gösterip göstemediği ASSOCIATED() fonksiyonu ile sorgulanabilir. Ayrıca, göstericinin gösterdiği yer NULLIFY() fonksiyonu ile sonlandırılabilir. Program 11.2' bu iki fonksiyonun kullanımı gösterilmiştir. Program 11.2: ASSOCIATED ve NULLIFY kullanımı
ÇIKTI
|