Amiga Dünyası sayı 13, sayfa 20

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 20

} Şimdiki örnekte ise, her tuşun gerçek port kodunu öğrenebilirsiniz.

maın()

{

int *mouse=0xbfe001; int *key=0xbfec01;

printf("Durmak için Sol Mouse tuşuna basınız.");

while(*mouse!=188) { printf("kod=%d",*key); } } Daha önce de söylediğim gibi, bu örnekleri çoğaltmak mümkün. Ben sizlere en çok kullandığım türden örnekler vermeye çalıştım. Siz bu örnekler üzerinde oynayarak konuya hakim olmaya çalışabilirsiniz.

İŞARETLER ve DİZİLER: C'de pointer'lar ve diziler arasında oldukça sıkı bir bağ vardır. Dizilerdeki herhangi bir indise pointer'lar sayesinde rahatça ulaşabilirsiniz.

Aşağıdaki örnekte 'a', on elemanlı integer bir dizi olsun. Bu dizinin örneğin beşinci elemanına pointer'lar ile ulaşmaya çalışalım:

int a[10]; int *pa,x;

pa=&a[0]; x=*(pa+5); Bu örnekte pa, a değişkeninin ilk adresini gösterecek şekilde tanımlanmaktadır. Doğal olarak beş byte sonrası da, a değişkeninin beşinci elemanının değerini verecektir.

pa=&a[0]; yerine;

pa=a; da diyebiliriz. Ya da aşağıdaki örnekte olduğu gibi kullanabiliriz; f() bir fonksiyon olsun,

f(&a[2]); yerine f(a+2); gibi. Şimdi ise, iki dizinin birbirine eşit- lenmesi örneğini inceleyelim. strcpy(s, t) char s[], t[];

{

int i;

i=0; while((s[i]=t[i]) !='0')

i++; } Yukarıdaki örneği pointerlar ile yapa- lım, strcpy(s, t) char *s, *t;

{

while((*s=*t) !='0') {

s++; t++;

} } Bu örneği daha kısa biçimde yazmak gerekirse, strcpy(s, t) char *s, *t;

{

while((*s++=*t++) !='0'); } '0' ifadesini, dizinin sonuna gelip gel- mediğimizi kontrol etmek için kullanıyo- ruz. Fakat bunu en kısa biçimde şöyle de yazabiliriz.

strcpy(s, t) char *s, *t;

{

while(*s++=*t-H-); } Burada, her iki dizinin değerinin sıfır ol- ması şartıyla programdan çıkılabilir.

Dikkat ettiyseniz, pointer'lar sayesinde istediğimiz bir değişkenin değerini rahatlıkla okuyup değiştirebiliyoruz. Bu da, programcılık açısından yukarıdaki örneklerden de anlaşılacağı gibi oldukça kolaylıklar sağlamakta. Fakat pointer'ların yararları bu kadarla bitmiyor. Bu yalnızca bir başlangıç. Bundan sonraki örneklerde de sıkça kullanacağımız pointer değişkenleri tam olarak anlamaya çalışın.

Bu aylık bu kadar. Gelecek aya oldukça önemli olan Structures (yapılar) konusunu inceleyeceğiz.

Hepinize iyi çalışmalar...

Klavyeyle gezinmek için ← ve → tuşları.