أهلا ومرحبا بكم مرة أخرى.
في هذه المحاضرة ، أريد أن أتحدث عن تحديد المؤشرات ، وبشكل
أساسي صيغة إعلان المراسل ثم استخدام عنوان المشغل لتعيين
عنوان ذاكرة لمؤشر.
لذا ، حتى هذه النقطة ، يجب أن نتعلم أن
المؤشر ليس أكثر من متغير يشير إلى
عنوان ذاكرة أو يحتوي على عنوان ذاكرة باعتباره قيمته.
لذلك فإن التصريح عن مؤشر ما ليس هو نفسه إنشاء مؤشر عادي.
لذلك لا يمكنك فعل شيء مثل مؤشر المؤشر.
هذه ليست طريقة التصريح بالمؤشر. بناء الجملة مختلف قليلا.
تستخدم علامة النجمة. لذلك لا يكفي أن نقول إن المتغير هو مؤشر.
يجب عليك أيضًا تحديد نوع المتغير الذي يشير إليه المؤشر.
أنواع المتغيرات المختلفة تستهلك كميات مختلفة من التخزين.
تتطلب بعض عمليات المؤشر معرفة حجم التخزين هذا.
لذلك تمامًا مثل المتغير العادي عند تحديد نوع البيانات
، عندما تقوم بإنشاء متغير من نوع بيانات المؤشر
، يجب عليك أيضًا تحديد نوع البيانات هذا.
يمكنك إعلان مؤشر لمتغير من النوع int عن طريق القيام بما يلي
، int star أو asterisk p number.
سيخبرك هذا أن هذا مؤشر.
تبدو int هي نفسها ، ولكن بعد ذلك تظهر علامة النجمة.
تشير علامة النجمة إلى المؤشر ، ثم تحدد
نوع المؤشر نفسه. هذا هو مؤشر int.
نوع المتغير الذي يحمل الاسم p number int star.
يمكنه تخزين عنوان أي متغير من النوع int.
المؤشر يخزن العناوين. لذلك إذا كنت ستخزن
عنوان متغير آخر ، فيجب تعريف هذا المتغير
على أنه نوع عدد صحيح.
هنا يشير PI إلى متغير int
، char star pc
، الذي يشير إلى متغير حرف ، نجم عائم pf
star pg ، هذه مؤشرات إلى متغيرات عائمة.
هذه هي الطريقة التي تحدد بها الأنواع ، فالأنواع مهمة.
المسافة بين علامة النجمة واسم المؤشر اختيارية.
ليس عليك وضع مساحة هناك. لا يمكن أن يكون لديك مساحة.
ما يحدث في النهاية ، وسنتحدث
عن إلغاء الإشارة إلى متغير هو أنك عادة ما تستخدم مسافة في الإعلان ثم عندما تقوم
بإلغاء المرجع ، لا تستخدمه.
لذلك يجب أن تحتوي كل هذه الإعلانات على مسافة حسب الاتفاقية.
قيمة المؤشر هي عنوان ، لذلك
يجب تمثيله داخليًا كصورة غير موقعة في معظم الأنظمة.
لذلك لا يزال يتعين عليها تخزين شيء ما. يحدث فقط أنه يخزن رقمًا سداسيًا عشريًا.
وعلى الرغم من أنه يتم تخزينه على أنه عدد صحيح ،
فلا تفكر فيه على أنه نوع عدد صحيح.
نفس الأشياء التي يمكنك القيام بها مع الأعداد الصحيحة ، لا يمكنك بالضرورة القيام بها باستخدام المؤشرات والعكس صحيح.
لذا ، حتى لو حاولت طباعته ، سيبدو ، رقمًا سداسيًا عشريًا ، فهذا لا يعني
أنه يمكنك التعامل معه كعدد صحيح.
يمكنك ضرب عدد صحيح في آخر ، على سبيل
المثال ، لكن لا يمكنك ضرب مؤشر بآخر.
المؤشر هو نوع جديد حقًا ، وليس نوعًا صحيحًا.
تمثل النسبة المئوية p التنسيق المحدد للمؤشرات.
سأقوم بعرض البيانات المختلفة لمؤشر وسنرى كيف يتم استخدام ذلك.
تُنشئ التعريفات السابقة
المتغير ولكن لا توجد تهيئة. ليس هناك مهمة هناك.
تريد دائمًا تعيين قيمة لمؤشر
، فهذا أمر خطير جدًا إذا لم تقم بتهيئة ذلك.
لذا فأنت تريد تهيئة مؤشر عندما تقوم بتعريفه.
إذا كنت لا تعرف ما يجب تهيئته إليه
إذا لم يكن عنوان متغير آخر أو إذا لم
تخصص الذاكرة له ديناميكيًا ، فيمكنك استخدام مؤشر فارغ.
لذا يمكنك تهيئة المؤشر بحيث لا يشير إلى أي شيء.
يمكنك القيام بذلك باستخدام null.
أنت تقول إن رقم p instar يساوي فارغًا لمؤشر إلى عدد صحيح.
Null هو ثابت يتم تحديده بواسطة المكتبة القياسية.
إنه يعادل صفرًا لمؤشر.
هذا يعني أنه لا يشير إلى أي شيء.
من المضمون عدم الإشارة إلى أي مكان في الذاكرة.
لذلك هذا أمر جيد ، لأنك تريد أن تفعل هذا لأن ما يعنيه أنك لن ترتكب أي أخطاء عن
طريق القيام بطريق الخطأ بتجاوز سعة المخزن المؤقت أو الكتابة إلى الذاكرة
التي ليس من المفترض أن تكتب إليها.
من خلال تهيئته لهذا ، فإنه في الواقع يحد من بعض الأخطاء التي يمكنك ارتكابها.
تحدثنا عن null قليلاً في السابق. تحدثنا عن الشخصية الفارغة.
هذا المفهوم يختلف عن المؤشر الفارغ.
يعني المؤشر الفارغ أنه لا يشير إلى أي شيء ، ويجب تهيئته بذلك.
تحتاج إلى إضافة توجيه التضمين لمعيار التعريف. h إذا كنت تريد استخدام التعريف
الفارغ هنا.
عنوان المشغل. إذا كنت تريد تعيين المؤشر الخاص
بك إلى العنوان ، فيمكنك
استخدام عامل تشغيل العنوان لمتغير موجود.
لذلك ، إذا كنت ترغب في تهيئة المتغير الخاص بك باستخدام المتغير الإضافي أو
الفرعي ، فقد أعلنت بالفعل أنك تستخدم عنوان المشغل ، علامة العطف.
لقد رأينا هذا عندما ناقشنا وظيفة scanf.
نحن هنا نسند متغير قيمة عدد صحيح 99.
نقوم بإنشاء مؤشر من النوع int ونخصص له عنوان الرقم.
يمكننا القيام بذلك لأن الرقم هو
int والمؤشر الذي أنشأناه يشير أيضًا إلى int.
إذن كل ما علينا فعله بعد عامل التساوي هو استخدام علامة العطف.
والآن سيحتوي الرقم p على عنوان الرقم.
القيمة الأولية للرقم p هي عنوان الرقم المتغير.
يجب أن يسبق إعلان الرقم إعلان المؤشر الذي
يخزن عنوانه لأنه
لا يمكنك تعيين شيء لم يتم تخصيص
ذاكرة لمؤشر.
إذا حاولت التعيين إلى رقم المؤشر هذا ، فلن يكون الرقم موجودًا إلا إذا قمت بذلك بعد ذلك.
لتعيين عنوان لمؤشر ، يجب أن يكون
لهذا العنوان ذاكرة مخصصة له.
وإلا فإن المترجم سوف يشتكي.
كن حذرًا لأنه لا يوجد شيء مميز في إعلان المؤشر.
يمكنك التصريح عن المتغيرات والمؤشرات العادية في نفس البيان.
لذلك يمكنك أن تقول قيمة مزدوجة ، قيمة p f الأسطوانات.
في هذا البيان هنا ، هذا هو المتغير الثاني
الوحيد p val هو مؤشر ، والاثنان الآخران عبارة عن زوجي فقط.
هذا أكثر وضوحًا قليلاً ، وأكثر وضوحًا
في هذا الإعلان. ولكن ماذا لو قلت في star pq
، فهذا يعني أن كلاهما مؤشرين وليسوا كذلك.
لدينا مؤشر int واحد فقط هنا وهو p ، والمتغير
q هو فقط لكتابة int.
من الخطأ الشائع الاعتقاد بأن كلا من p و q مؤشرات.
لذا كن حذرًا عندما تعلن عن مؤشر على العديد من المتغيرات في نفس السطر.
من الجيد أيضًا استخدام الأسماء التي تبدأ بالحرف p كأسماء مؤشرات.
سيخبرك هذا أن هذا المتغير هو مؤشر بمجرد النظر إليه.
لذلك عادة ما تفعل كل ما تبذلونه من التصريحات عن المتغيرات في الجزء العلوي
من البرنامج ، عادة داخل الوظيفة الرئيسية.
وعندما ترى هذه المتغيرات المستخدمة لاحقًا
في البرنامج ، يمكنك بسهولة تحديد أنواع البيانات المختلفة
أو أنواع المؤشرات المختلفة لأنها تحتوي على p كبادئة.
لذا فقد تناولت هذه المحاضرة
للتو كيف يمكنك تعريف المؤشر وتوضيحه ثم تعيين
عنوان متغير موجود لمؤشر.
الآن هناك حالات لا تريد فيها بالضرورة تخصيص
قيمة مؤشر لمتغير موجود ، فربما تريد تخصيص ذاكرة جديدة.
سوف نتحدث عن هؤلاء في المحاضرة اللاحقة. لكن في الوقت الحالي ، سنبقي الأمر بسيطًا.
سنركز على استخدام مؤشرات من النوع ints
وأنواع مختلفة سهلة مثل الزوجي أو العوامات.
وسنركز على تعيين المتغيرات
الموجودة وعنوانها ونرى كيف يعمل ذلك.
لذلك دعونا نمضي قدما. شكرًا لك.