• 0

ما الفرق بين p و p* باعتبار أنهما مؤشرين في ++C؟

لاحظت في استخدام المؤشرات pointers في لغة C++ أنه يتم استخدام أحيانًا المتغير pointer مع وضع علامة نجمة '*' قبله واحيانًا يتم استخدام المتغير بدون نجمة فما الفرق بين كلا الاستخدامين؟

تمّ تعديل بواسطة Programmer

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

المؤشر هو متغير يُخزّن قيمة عنوان متغير آخر في الذاكرة بالنظام الست عشري hexadecimal، بالنسبة لاستخدام المؤشرات يتم اسناد عنوان متغير ما (عن طريق كتابة علامة '&' وتُقرأ "رفرنس" قبل المتغير) إلى المؤشر pointer عند تعريفه مثال:

int number = 5;
int *p = &number;

أو بعد تعريف المؤشر:

int number = 5;
int *p;
p= &number

لاحظ أن علامة نجمة '*' عرّفت المتغير على أنه pointer أي أنه عند وجود علامة '*' بعد نوع المتغير فهذا يعني أن المتغير هو مؤشر pointer.

ولكن هناك استخدام آخر للعلامة '*' لاحظ المثال التالي:

int number = 5;
int *p;
p= &number;
printf(*p);

عند وضع علامة '*' قبل المتغير وبعد تعريفه وإسناد عنوان متغير آخر إليه فهذا يعني أن p* هي قيمة هذا المتغير الذي يؤشر عليه المؤشر p.

أي أن

*p = 5

 وهي قيمة المتغير number.

int *p; // تعرف مؤشر من نوع int
int number=5;// تعرف متغير من نوع int وقيمته 5
p= &number// تسند عنوان المتغير number في الذاكرة إلى المؤشر p
int x = *p;
تسند قيمة المتغير الذي يؤشر عليه المؤشر p إلى المتغير x
أي *p=5

 

تمّ تعديل بواسطة Lujain

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن