Tutorial 8: Pointer

السلام عليكم الجميع

اليوم بتكلم عن بوينتر و طبعآ في اختلاف بين بوينتر و المرجع (Reference) الى تعلمناها المره سابقه.

وايش الفروقات بينهم؟

بوينتر يحفظ المتغير في مكان بالميموري على طول يسمى Address و بشرح لكم كيف بالعملي.

ريفرينس يكون عكس بوينتر فقط مرجع او alias من خلال متغيرات و سميناها بالقيمة افتراضية.

نجي الشرح بالعملي ورغم الموضوع شويه صعب عند البعض وان شاء الله اسهل الفكره وتوصل.

بسم الله:

نفترض سوينا متغيرين هم

int number =10, *p

number يكون له قيمة 10

نوع اخر يكون P* الى هو متغير تبع بوينتر.

لما نجي نحط زي كذا:

p = &number

نحفظ الادرس تبع المتغير number في بوينتر P

بعد مانحفظ الادرس راح يكون نفس الادرس في P

الغرض العمل هذي الطريقة نبي نحط القيمة رقم 10 في نفس الادرس تبع بوينتر بحيث يصير لها مكان

هذا الكود الى حاب يجرب وبعدها نسوي تطبيق عملي:

#include<iostream>
#include<string>
 using namespace std;
 
 int main(){
  
  int number = 10, *p; 

  p = &number; 
 // store address of number in pointer var

cout<<"Address of number variable  : "<<&number<<endl; 
 // address of number variable
cout<<"Address stored in P variable: "<<p<<endl; 
// address stored in p variable.
cout<<"Value of *p variable: "<<*p<<endl;
 // value of *p varible
 }

هنا تطبيق عملي مع تعليق:

Screenshot from 2020-05-10 00-41-33

خلينا نشوف ايش صار هنا

مثل ماشرحنا المتغير number و بوينتر صارو على نفس المكان المحفوظ في الميموري تمام!

هذا الادرس راح يكون محجوز المتغير p و المتغير number

Screenshot from 2020-05-10 01-05-41


طيب نبي نستخدم بوينتر بس هالمره يكون بالادرس جديد مو على نفس الادرس قديم كيف؟

بسيطة وكل الى عليك تسوي كذا:

p = new int

نستخدم new المتغير نفسه راح يروح مكان جديد بالميموري او الادرس جديد

والحركة هذي تنفع في حال تمرير البوينتر في اكثر من الدالة او function وتحتاج new بحيث نبحث المتغير في مكان جديد بالادرس او بالميموري.

هذي النتيجة:

pointer

مثل مانلاحظ بعد ماحطينا new بالمتغير بوينتر انحفظ بالمكان ثاني بالميموري.

وأيضآ من احد الاستخدامات new في link list لانه في كل مره تستخدمها تحتاج تعمل new

مع الملاحظة بوينتر شي اخر و link list شي اخر و هم ماهو زي بعض نهائيآ.

طبعآ الدرس كان بسيط و ان شاءالله وصلت المعلومة عن بوينتر .

اذا تحتاج شرح اكثر او مساعده خبرني واشرح لك بس اهم شي توصل لك فكره عن بوينتر

بالتوفيق الجميع يارب.

و اشوفكم على خير.