Thuta Learning
ရှာဖွေရန်
AdvancedProgrammingbeginner

Pointers

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

Pointer ဆိုတာ memory address ကိုသိမ်းတဲ့ variable ပါ။ C ရဲ့ power က pointer နဲ့ memory ကိုနားလည်တဲ့နေရာမှာ အများကြီးရှိပါတယ်။ Function ထဲကနေ value ပြောင်းချင်တာ၊ array/string ကိုထိရောက်စွာ handle လုပ်ချင်တာ၊ dynamic memory သုံးချင်တာတွေမှာ pointer လိုပါတယ်။

c
#include <stdio.h>

int main() {
  int age = 43;
  int *ptr = &age;

  printf("Address: %p
", (void *)ptr);
  printf("Value: %d
", *ptr);

  *ptr = 44;
  printf("New age: %d", age);
  return 0;
}

ptr က age ရဲ့ address ကိုသိမ်းပါတယ်။ *ptr က pointer ညွှန်နေတဲ့နေရာထဲက value ကိုဖတ်တာ သို့မဟုတ် ပြောင်းတာပါ။

You should see
Address: 0x7ffe5367e044 Value: 43 New age: 44

Info

* သင်္ကေတက declaration မှာ pointer ဖြစ်ကြောင်းပြောနိုင်သလို expression မှာ dereference လုပ်နိုင်ပါတယ်။ Context အလိုက် အဓိပ္ပါယ်ကွာပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Initialize မလုပ်ထားတဲ့ pointer ကို dereference မလုပ်ပါနဲ့။ Random memory ကိုထိမိပြီး crash ဖြစ်နိုင်ပါတယ်။