السلام عليكم الجميع
اليوم بتكلم عن بوينتر و طبعآ في اختلاف بين بوينتر و المرجع (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 }
هنا تطبيق عملي مع تعليق:
خلينا نشوف ايش صار هنا
مثل ماشرحنا المتغير number و بوينتر صارو على نفس المكان المحفوظ في الميموري تمام!
هذا الادرس راح يكون محجوز المتغير p و المتغير number
طيب نبي نستخدم بوينتر بس هالمره يكون بالادرس جديد مو على نفس الادرس قديم كيف؟
بسيطة وكل الى عليك تسوي كذا:
p = new int
نستخدم new المتغير نفسه راح يروح مكان جديد بالميموري او الادرس جديد
والحركة هذي تنفع في حال تمرير البوينتر في اكثر من الدالة او function وتحتاج new بحيث نبحث المتغير في مكان جديد بالادرس او بالميموري.
هذي النتيجة:
مثل مانلاحظ بعد ماحطينا new بالمتغير بوينتر انحفظ بالمكان ثاني بالميموري.
وأيضآ من احد الاستخدامات new في link list لانه في كل مره تستخدمها تحتاج تعمل new
مع الملاحظة بوينتر شي اخر و link list شي اخر و هم ماهو زي بعض نهائيآ.
طبعآ الدرس كان بسيط و ان شاءالله وصلت المعلومة عن بوينتر .
اذا تحتاج شرح اكثر او مساعده خبرني واشرح لك بس اهم شي توصل لك فكره عن بوينتر
بالتوفيق الجميع يارب.
و اشوفكم على خير.