Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

‫ملخص موضوع البوينتر ‪-:‬‬

‫تقديم ‪PrimeSafar :‬‬


‫‪The Pointer‬‬
‫هي عبارة عن متغيرات تقوم بخزن عنوان لذا يمكننا الوصول‬
‫الى قيمة ذلك العنصر عن طريق العنوان ‪...‬‬
‫قبل البداية عليك ان تتعرف على الحجم الذي يأخذه كل متغير ‪-:‬‬

‫‪Int = 4 Byte‬‬ ‫‪Char = 1 Byte‬‬


‫‪Double=8 Byte Float = 4 Byte‬‬

‫ماذا نقصد في حجم الذاكرة ؟‬


‫أي ان كل عنصر يحجز قيمة على عدد المتغير ‪..‬‬
‫مثال حي ‪-:‬‬

‫‪204‬‬ ‫‪G‬‬ ‫; ‪Int A = 5‬‬


‫‪B‬‬ ‫; '‪Char B='G‬‬
‫‪203‬‬ ‫‪5‬‬
‫‪202‬‬ ‫‪5‬‬
‫‪A‬‬
‫‪201‬‬ ‫‪5‬‬
‫‪200‬‬ ‫‪5‬‬

‫انظر الى الشكل (‪ )A‬اخذت ‪ 4‬أماكن بينما )‪ )B‬اخذ مكان واحد‬


‫اآلن بعد ما عرفت طريقة عمل المتغيرات داخل الذاكرة ( ان‬
‫شاءهللا يعني ) ننتقل لالهم ‪The Pointer‬‬
‫‪--------------------------------------------------------‬‬
‫طريقة تعريف البوينتر ‪ -:‬عن طريق وضع عالمة ( * ) ‪..‬‬
‫مثال ‪-:‬‬

‫>‪#Include <iostream‬‬
‫; ‪Using namespace std‬‬
‫{)(‪Int main‬‬
‫‪Int X = 5 ; //variable‬‬
‫‪Int *Ptr ; // Pointer‬‬
‫يجب على البوينتر يكون نفس تعريف المتغير سواء ‪//int‬‬
‫‪char float‬‬
‫}‬
‫‪-------------------------------------------------------------‬‬
‫اآلن بعد ما عرفت شلون تعرف بوينتر ! شلون نتعامل مع‬
‫البوينتر ‪...‬‬
‫‪ -1‬للحصول على عنوان نستخدم & مثل ; ‪Ptr = &X‬‬
‫‪ -2‬للحصول على قيمة نستخدم *‬
‫‪--------------------------------------------------------‬‬
‫األمور تخربطت !‬
‫راح اوضحها بشكل مثال عملي‬
‫>‪#include <iostream‬‬
‫; ‪Using namespace std‬‬
‫{ ) ( ‪Int main‬‬
‫تعريف متغير ‪Int X = 5 ; // X=5‬‬
‫تعريف بوينتر باسم ‪Int *Ptr ; // Ptr‬‬
‫البوينتر يساوي عنوان المتغير ‪Ptr = &X //‬‬
‫راح يطبع العنوان ‪cout<<Ptr ; //‬‬
‫راح يطبع قيمة المتغير ‪cout<< *Ptr // X‬‬
‫}‬
‫اوكي ممكن تسأل شلون صارت العملية ؟‬
‫راح اوضحها على شكل رسم توضيحي ‪........‬‬

‫قبل ال أوضح الفكرة افتهمت ؟‬


‫اذا ما فتهمت راجع الكالم اكثر من مرة ‪ ,‬اآلن سؤالي الك ؟‬
‫شنو هو البوينتر و شنو نستفاد من البوينتر اذا وصلنا‬
‫للعنوان؟ جاوب نفسك على اللي فهمته‪........‬‬
‫واآلن نكدر نفهم شلون يشتغل ! ‪ ..‬عالمة * تعني اظهار‬
‫القيمة المؤشر عليها وبدونها فقط يعرض العنوان المؤشر‬
‫عليه ‪ ...‬بعدك تواجه مشكلة ؟؟‬
‫اختبر نفسك ‪-:‬‬
‫; ‪Int X = 50‬‬
‫; ‪Int *p‬‬
‫; ‪p= &X‬‬
‫? ‪cout<<p ; // what is the output‬‬
‫? ‪cout<<*p ; // what is the output‬‬
‫? ‪cout<<&X ; // what is the output‬‬
‫هسه بعد ما افتهمت مبدأ عمل المؤشرات‬
‫نبدي بالمواضيع بشكل مختصر ‪.....‬‬
Pointer to Function -1
Syntax of the pointer to function …..
Int (*ptr) (int , int ) = func ;
Pointer with Struct -2
Syntax of the pointer to struct…
Struct name *Ptr ;
Ptr = Object of struct
* ‫ بدال من‬-> ‫انتبه في الستراكت نستخدم‬
Exp :
Ptr -> Name ;
Pointer with array -3
Syntax of pointer with array

Int a[5]={1,2,3,4,5] ;
Int *Ptr ;
Ptr = a ; // ‫عنوان اول عنصر في المصفوفة‬
Ptr = a[1] ; //address second number ;
Ptr = a[2] ; //address third number ;

‫اآلن بعد ما افتهمت طريقة كتابة البوينتر‬


‫ تابع كورس الي راح ارسله‬.. ‫شراح تسوي ؟‬
‫أخيرا وليس اخرا‬
‫راح احط كل نوع ومثال ‪..‬‬
‫‪Pointer to function and array -1‬‬
Pointer with struct -2
Pointer with struct and function -3

You might also like