اذهب إلى المحتوى
  • 0

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

Programmer

السؤال

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

تم التعديل في بواسطة Programmer
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...