مقدمة إلى C Pointers
المؤشرات هي واحدة من أكثر الأجزاء المربكة / الصعبة فيج، فى اعتقادي. خاصة إذا كنت جديدًا في البرمجة ، ولكن أيضًا إذا كنت تنتمي إلى لغة برمجة عالية المستوى مثل Python أو JavaScript.
في هذا المنشور ، أود أن أقدمهم بأبسط طريقة ممكنة ولكن غير مبهمة.
المؤشر هو عنوان كتلة من الذاكرة تحتوي على متغير.
عندما تعلن عن رقم صحيح مثل هذا:
int age = 37;
يمكننا استخدام&
عامل التشغيل للحصول على قيمة العنوان في ذاكرة المتغير:
printf("%p", &age); /* 0x7ffeef7dcb9c */
لقد استخدمت ملف%p
التنسيق المحدد فيprintf()
لطباعة قيمة العنوان.
يمكننا تخصيص العنوان لمتغير:
int *address = &age;
استخدامint *address
في الإعلان ، لا نعلن عن متغير عدد صحيح ، بل نعلن عن أالمؤشر إلى عدد صحيح.
يمكننا استخدام عامل المؤشر*
للحصول على قيمة المتغير الذي يشير إليه العنوان:
int age = 37;
int *address = &age;
printf("%u", *address); /* 37 */
هذه المرة نستخدم عامل المؤشر مرة أخرى ، ولكن نظرًا لأنه ليس إعلانًا هذه المرة ، فهذا يعني "قيمة المتغير الذي يشير إليه المؤشر".
في هذا المثال نعلن أنage
متغير ، ونستخدم مؤشرًا لتهيئة القيمة:
int age;
int *address = &age;
*address = 37;
printf("%u", *address);
عند العمل باستخدام لغة C ، ستجد أن الكثير من الأشياء مبنية على هذا المفهوم البسيط ، لذا تأكد من أنك تتعرف عليه قليلاً ، من خلال تشغيل الأمثلة المذكورة أعلاه بنفسك.
تعتبر المؤشرات فرصة عظيمة لأنها تجبرنا على التفكير في عناوين الذاكرة وكيفية تنظيم البيانات.
المصفوفاتمثال واحد. عندما تعلن عن مصفوفة:
int prices[3] = { 5, 4, 3 };
الprices
المتغير هو في الواقع مؤشر على العنصر الأول من المصفوفة. يمكنك الحصول على قيمة العنصر الأول باستخدام هذاprintf()
تعمل في هذه الحالة:
printf("%u", *prices); /* 5 */
الشيء الرائع هو أنه يمكننا الحصول على العنصر الثاني بإضافة 1 إلىprices
المؤشر:
printf("%u", *(prices + 1)); /* 4 */
وهكذا بالنسبة لجميع القيم الأخرى.
يمكننا أيضًا القيام بالعديد من عمليات التلاعب في الأوتار ، نظرًا لأن السلاسل عبارة عن مصفوفات تحت الغطاء.
لدينا أيضًا العديد من التطبيقات ، بما في ذلك تمرير مرجع كائن أو وظيفة حولها ، لتجنب استهلاك المزيد من الموارد لنسخها.
تحميل مجانيكتيب C
المزيد من دروس clang:
- مقدمة في لغة البرمجة سي
- ج ـ المتغيرات والأنواع
- ثوابت C
- عوامل C
- C الشرطية
- كيفية التعامل مع الحلقات في لغة سي
- مقدمة إلى C Arrays
- كيفية تحديد طول المصفوفة في لغة سي
- مقدمة إلى سلاسل سي
- كيفية إيجاد طول سلسلة في C
- مقدمة لمؤشرات سي
- التكرار خلال مصفوفة باستخدام C
- القيم المنطقية في لغة C.
- مقدمة في وظائف سي
- كيفية استخدام NULL في لغة C.
- مفاهيم I / O الأساسية في C
- علامات الاقتباس المزدوجة مقابل الاقتباسات الفردية في لغة C.
- كيفية إرجاع سلسلة من دالة C.
- كيفية حل تحذير وظيفة المكتبة المعلنة ضمنيًا في لغة سي
- كيفية التحقق من قيمة الحرف في C.
- كيفية طباعة النسبة المئوية باستخدام `printf ()` في لغة سي
- محددات التحويل ومعدلاته
- كيفية الوصول إلى معلمات سطر الأوامر في C
- نطاق المتغيرات في C
- هل يمكنك عمل وظائف متداخلة في لغة C؟
- المتغيرات الثابتة في C
- المتغيرات العامة ج
- الكلمة الأساسية typedef في C
- ج الأنواع المعدودة
- هياكل ج
- ملفات رأس C
- المعالج سي