ခုဏက memory address ကို ကြည့်တဲ့ နည်းကို ပြခဲ့ပါတယ်။ ဒီတခါတော့ အဲ့ဒီ memory address မှာ ရှိနေတဲ့ value ကို pointer သုံးပြီး ကြည့်ကြည့်ရအောင်။
#include <iostream>
int main() {
int i = 10;
int* v = &i;
std::cout << "value of pointer v:"<< *v;
return 0;
}
ဒါဆိုရင် Console မှာ အောက်ပါ output ကို မြင်ရမှာပါ။
value of pointer v: 10
အထက်ပါ code က
std::cout << "value of pointer v:"<< *v;
ဒီလိုင်းက int pointer v က dereference လုပ်တာပါ။ သူ့ထဲမှာ i ရဲ့ address ကို သိမ်းထားလိုက်တာ။ ဒါကြောင့် *v ကို print လုပ်တဲ့အချိန်မှာ i ရဲ့ value ဖြစ်တဲ့ 10 ကို ပြနေတာပါ။
တကယ်လို့ *v = 12; လို့ assign လုပ်လိုက်ရင် i ရဲ့တန်ဖိုးပါ ပြောင်းသွားမှာပါ။
ဘာလို့လဲဆိုတော့ v ဟာ i ရဲ့ memory address ကို သိမ်းထားတဲ့ pointer ဖြစ်နေလို့ပါ။
#include <iostream>
int main() {
int i = 10;
int* v = &i;
std::cout << "value of pointer v:"<< *v;
*v = 12;
std::cout << "value of i:"<< i;
return 0;
}
ဒါဆိုရင် Console မှာ အောက်ပါအတိုင်း output ထွက်လာပါလိမ့်မယ်။
value of pointer v: 10
value of i: 12