شرح المؤشرات - C++ Pointers || تعلم c++ خطوة بخطوة

 

المؤشرات في لغة ++C

المؤشرات هي مواضيع برمجة بسيطة وسهلة. تساعد المؤشرات في تسهيل القيام ببعض الأشياء في C ++ ، ولا يمكن القيام بأشياء مثل تخصيص الذاكرة الديناميكي بدونها.

كما تعلم، كل متغير هو موقع ذاكرة، وكل موقع ذاكرة يحدد عنوانه الخاص، والذي يمكن الوصول إليه باستخدام عامل التشغيل (&) الذي يشير إلى عنوان الذاكرة. المثال التالي يطبع عناوين المتغيرات المحددة.

#include <iostream>

using namespace std;
int main () {
int var1;
char var2[10];

cout << "Address of var1 variable: ";
cout << &var1 << endl;

cout << "Address of var2 variable: ";
cout << &var2 << endl;

return 0;
}

بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:

Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6


ما هو المؤشر؟ What are Pointers

المؤشر هو متغير، قيمته هي عنوان متغير آخر. مثل أي متغير أو ثابت، يجب أن تعلن عن مؤشر قبل أن تتمكن من التعامل معه. الشكل العام للإعلان عن متغير المؤشر هو كما يلي:


type *var-name;


في هذه الحالة، يكون النوع هو النوع الأساسي للمؤشر، والذي يجب أن يكون نوعًا صالحًا في C ++، و var-name هو اسم متغير المؤشر. العلامة النجمية asterisk هي نفس الرمز المستخدم للنتيجة، ولكنها تستخدم هنا للإشارة إلى مؤشر. يتم عرض كيفية الإعلان عن إشارة مرجعية في المثال التالي:

int    *ip;    // pointer to an integer
double *dp; // pointer to a double
float *fp; // pointer to a float
char *ch // pointer to character


نوع البيانات الفعلي لقيمة جميع المؤشرات، سواء كان عددًا صحيحًا أو float أو حرفًا أو غير ذلك، هو نفسه، وهو رقم سداسي عشري طويل يمثل عنوان ذاكرة. الاختلاف الوحيد بين مؤشرات أنواع البيانات المختلفة هو نوع بيانات المتغير أو الثابت الذي يشير إليه المؤشر.


كيفية استخدام المؤشر في C ++

هناك العديد من العمليات المهمة التي نقوم بها باستخدام المؤشرات. (أ) نحدد متغير المؤشر. (ب) نقوم بتعيين عنوان متغير لمؤشر. (ج) أخيرًا نصل إلى قيمة العنوان المتغير في المؤشر.

يوضح المثال التالي كيفية استخدام المؤشر: 

#include <iostream>

using namespace std;

int main () {
int var = 20; // actual variable declaration.
int *ip; // pointer variable

ip = &var; // store address of var in pointer variable

cout << "Value of var variable: ";
cout << var << endl;

// print the address stored in ip pointer variable
cout << "Address stored in ip variable: ";
cout << ip << endl;

// access the value at the address available in pointer
cout << "Value of *ip variable: ";
cout << *ip << endl;

return 0;
}

 

بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20


مزيد من التفاصيل من المؤشرات

تحتوي المؤشرات على العديد من المفاهيم ولكن من السهل برمجتها وهي مهمة جدًا. يتم عرض بعض المفاهيم المهمة والواضحة حول المؤشرات في الجدول أدناه.

الرقمالوصف
1
مؤشرات لاغية Null Pointers

يدعم C ++ المؤشر الفارغ ، وهو ثابت بقيمة صفر محددة في العديد من المكتبات القياسية.

2
مؤشر حسابي Pointer Arithmetic

هناك أربع معاملات حسابية يمكن استخدامها في المؤشرات: ++ ، - ، + ، -

3

هناك علاقة وثيقة بين المؤشرات والمصفوفات.

4
Array of Pointers

يمكنك تحديد المصفوفات لتحتوي على عدد من المؤشرات.

5
من المؤشر إلى المؤشر Pointer to Pointer

يتيح لك C ++ أن يكون لديك مؤشر على مؤشر وما إلى ذلك.

6
مؤشرات التمرير إلى الدالة Passing Pointers to Functions

يؤدي تمرير وسيطة بالإشارة أو بالعنوان إلى تمكين تغيير الوسيطة التي تم تمريرها في دالة الاستدعاء من خلال الوظيفة التي تم استدعاؤها.

7
Return Pointer from Functions

يمكن أن تعيد الدالة المؤشر إلى متغير محلي أو ثابت وتخصيص الذاكرة إليه تلقائيًا.




كلمات مفتاحية: