ایشارهچی (پوینتر، pointer) پازل تکیندیر و بونا گؤره ده وضعیتی سیزین اوچون آیدین ائتمهیه اوماریق. بونا گؤره ده C پروقراما دیلین چوخ اؤنملی بیر بؤلومو اولاراق، ایشارهچینین نه اولدوغو و نئجه ایستیفاده اولماغینی شرح وئریب و بوتون آچیقلامالاری چوخ یاواش و آتدیم آتدیم یاپاجاییق.
ایشارهچییی بو تعریف ایله ده آنلاماق اولار: آدرس تکین حافیظهده یئر ساخلایان بیر موتغیره، ایشارهچی دئییلیر!
یالنیز دا آدرس دئییل. مثلا «گلین حافیظهنین ۳۱-جی یئریندهکی میقدارا باخاق» تکین بیر جومله دئیه بیلمهسینیز. ایشارهچیلر بئله ایشلهمیرلر. بو آدرس، بللی بیر موتغیرین اولمالیدیر.
ایشارهچیلر ائله باشقا موتغیرلر تکین تعریف اولاراق، اولدوز اوپراتور اؤن-أکی ایله بیرلشیرلر. یعنی ایشارهچینین آدیندان اؤنجه، اولدوز سیمگهسی اونا یازیلیر.
ایشارهچی اؤز موتناظیر موتغیری ایله بیر نوعدان اولمالیدیر و قوللانماقدان اؤنجه، اولیه میقداری وئریلمهلیدیر.
البته C دیلیندهکی بوتون موتغیرلر اوچون بونو ائتمهلیسینیز، آنجاق ایشارهچی اوچون داها واجیب و گرکلیدیر.
ایشارهچی اوچون اولیه میقدار ایختیصاص وئریلمهسه، پروقرامدا چوخلو ایرادلار باش وئرهجک.
آشاغیداکی پروقراما باخین:
#include <stdio.h>
int main()
{
int babak;
printf("The address of \"babak\" is %p\n",&babak);
return(0);
}
babak تکین بیر اینتیجیر موتغیر تعریف ائتمیشیک و %p یئر ساخلاییجیسی ایله اونون آدرسینی چاپ ائتمیشیک.
دئمیشدیک دا، بیر موتغیر اوچون، موطلق حافیظهنین بیر بللی آدرسی ایختیصاص وئریلیر.
ایندی ایسه بو پروقرامی ایشارهچی ایله یازاجاییق. ایشارهچینین ده حافیظهده بیر یئر ساخلانان موتغیر تکین اولماسینی اونوتمایین.
آشاغیداکی میثالی ایزلهیین:
#include <stdio.h>
int main()
{
int babak;
int *b;
b = &babak;
printf("The address of \"babak\" is %p\n",&babak);
return(0);
}
بلکه بو موقعیتده بیراز شاشیرمیش اولاسینیز، ایشارهچیدن اؤنجهکی اولدوز نه اولدو؟
۴-جو سطرده babak آدی ایله بیر اینتیجر موتغیر تعریف ائدیلیبدیر.
۵-جی سطرده اینتیجر بیر ایشارهچی تعریف اولوب و سونراکی سطرده ایسه اونون آدرسی قاباقکی babak موتغیرین آدرسی ایله بیر توتولوبدور. سونرا دا قاباقکی تکین نتیجه چاپ اولوبدور.
یاخشی، بورا قدر خاص بیر دگیشیکلیک گؤرونمور.
ایندی بیر آیری printf فانکشنی ایله b ایشارهچیسینی چاپ ائتمک اوچون پروقرامی آشاغیداکی تکین دگیشین.
#include <stdio.h>
int main()
{
int babak;
int *b;
b = &babak;
printf("The address of \"babak\" is %p\n",&babak);
printf("The address of \"babak\" is %p\n",b);
return(0);
}
Output Terminal
The address of "babak" is 0x7fffdfcb509c
The address of "babak" is 0x7fffdfcb509c
Process returned 0 (0x0) execution time : 0.004 s
Press ENTER to continue.
گؤردویونوز تکین ایکی printf فانکشنین جاوابلاری بیر اولوبدور. بللیدیر، b بیر ایشارهچی اولاراق، میقداری babak موتغیرین آدرسینه ایختیصاص وئریلیبدیر.
۸-جی سطردهکی ایشارهچیدن اؤنجه ده & یازیلماییبدیر.
عیلّتی ده آیدیندیر. ایشارهچی بیر یئر آدرسی اولاراق، & یازماغا احتیاجی یوخدور و اؤزو تک گلیر.