الانتقال إلى المحتوى الرئيسي

كيفية إنشاء مرجع إلى كائن في ج

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

لإنشاء مرجع لكائن في ج ، يجب أن تعلن عن مؤشر لنوع البيانات المطلوب. على سبيل المثال ، لإنشاء مرجع إلى عدد صحيح ، يجب أن تعلن مؤشر كثافة العمليات باستخدام المشغل *:

إنت * بتر;

عدد الأسطوانات = 42;

في هذا المثال ، نقوم بإنشاء متغير الأسطوانات مع قيمة 42 ، ومن ثم تعيين عنوان الذاكرة من هذا المتغير إلى مؤشر بتر باستخدام & المشغل. الآن ، باستخدام مؤشر بتر ، يمكننا الوصول إلى قيمة متغير الأسطوانات:

  1. برينتف ("قيمة متغير الأسطوانات: ٪ د
  2. "،*بتر);
  3. الإخراج في هذا المثال سيكون "قيمة المتغير الأسطوانات: 42". نحن ديريفيرانس مؤشر بتر باستخدام * المشغل للوصول إلى قيمة المتغير في عنوان الذاكرة المخزنة في المؤشر.
  4. وبالتالي ، فإن إنشاء مرجع لكائن في لغة سي يسمح لنا بالعمل بفعالية مع البيانات ونقلها إلى الوظائف وإجراء عمليات التلاعب الأخرى اللازمة في عملية البرمجة.
  5. ما هو الرابط في اللغة ج?
  6. التعريف والغرض
  7. مثال على استخدام الرابط
  8. إنشاء ارتباط إلى كائن
  9. باستخدام المشغل &
  10. مثال على إنشاء ارتباط إلى كائن

التلاعب الروابط في اللغة ج

تغيير القيمة عبر رابط

سؤال وجواب

كيف يمكنني إنشاء إشارة إلى كائن في ج?كيف يمكنني تعيين قيمة لكائن عبر مرجع في ج?
كيف يمكنني الحصول على قيمة الكائن المشار إليه في ج?كيف يمكنني تمرير إشارة إلى كائن إلى وظيفة في ج?
ما هو الرابط في اللغة ج?المرجع (المؤشر) في لغة البرمجة سي هو متغير يخزن عنوان الذاكرة لمتغير آخر. يسمح لك الرابط بالوصول إلى قيمة هذا المتغير باستخدام العنوان الذي يشير إليه.
إعلانالوصف

إنشاء مؤشر إلى

  • متغير نوع كثافة العمليات
  • تعويم * بتر;

عدد الأسطوانات = 10;

إنت * بتر = #

  • في هذا المثال
  • ، المتغير الأسطوانات
  • يتم تعيين القيمة 10 ، والمؤشر

إنت * بتر = #

قيمة كثافة العمليات = * بتر;

في هذا المثال ، المتغير

القيمة

يتم تعيين القيمة

من متغير الأسطوانات

  • عبر مؤشر
  • بتر
  • باستخدام المشغل'*'.
  • يتيح لك استخدام المراجع في اللغة ج العمل بكفاءة مع الذاكرة ونقل البيانات إلى الوظائف بالرجوع إليها. ومع ذلك ، يمكن أن يؤدي الاستخدام غير السليم للمراجع إلى أخطاء مثل المؤشرات الفارغة أو تجاوز الذاكرة المخصصة ، مما قد يتسبب في حدوث أخطاء في تنفيذ البرنامج.
  • التعريف والغرض

إشارة إلى كائن في لغة البرمجة ج هو مؤشر إلى الذاكرة حيث يتم تخزين البيانات من هذا الكائن. في ج ، يمكن إنشاء ارتباط باستخدام مشغل العنوان ( & ) ويمكن تعيينه لمؤشر.

يسمح لك الرابط بالوصول إلى هذا الكائن على عنوانه في الذاكرة ، مما يجعل من الممكن تغيير قيمه أو تمريره إلى وظائف لمزيد من الاستخدام.

الروابط في ج لها الميزات التالية:

يمكن تغيير الكائن الذي يشير إليه الارتباط في

يمكن تمرير المؤشر إلى أو إرجاعه من الوظائف

يجب تخصيص الذاكرة المشار إليها بواسطة الرابط قبل استخدام الرابط.

يمكن أن يكون المؤشر فارغا (فارغا) ، مما يشير إلى عدم وجود مرجع للكائن

المراجع إلى أنواع مختلفة من الكائنات لها أحجام بت مختلفة (الأحجام بالبايت)

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

مثال على استخدام الرابط

لفهم أكثر اكتمالا لكيفية استخدام المراجع في اللغة ج ، دعونا نلقي نظرة على مثال بسيط.

لنفترض أن لدينا بنية بيانات تمثل كتابا:

كتاب الهيكل {

عنوان شار [100];

مؤلف شار [100];

السنة الدولية;

};

يمكننا إنشاء متغير من هذا النوع وملء حقوله على النحو التالي:

الآن دعونا إنشاء مؤشر لهذا الهيكل:

كتاب الهيكل * كتاب;

، يمكننا الوصول إلى حقول الهيكل باستخدام مشغل السهم (

->

). على سبيل المثال ، للحصول على قيمة حقل العنوان ، يمكننا كتابة:

برينتف ("عنوان الكتاب: ٪ س" ، بوكتر- > العنوان);

هنا

كتاب - > العنوان

تستخدم للوصول إلى حقل عنوان الهيكل الذي يشير إليه

بوكبتر

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

إنشاء ارتباط إلى كائن

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

المؤشرات هي متغيرات تخزن عنوانا في ذاكرة كائن آخر. إنها تسمح لك بالعمل مع كائن باستخدام عنوانه في الذاكرة ، بدلا من الكائن نفسه. يمكن أن يكون هذا مفيدا في العديد من المواقف ، على سبيل المثال ، عند تمرير كائن إلى دالة بالرجوع أو عند إنشاء هياكل بيانات ديناميكية.

لتعيين العنوان

الأسطوانات

إلى المؤشر

p

. الآن

في هذا المثال ، نستخدم

المشغل *

للحصول على قيمة العدد الصحيح المشار إليه بواسطة المؤشر

p

. القيمة

من * ع

سيكون مساويا لـ 42 وسيتم تعيينه للمتغير

القيمة

.

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

باستخدام المشغل &

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

مثال على استخدام المشغل &:

عدد الأسطوانات = 10;

إنت * بتر = #

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

الآن ، باستخدام مؤشر بتر ، يمكنك الوصول إلى قيمة متغير الأسطوانات من خلال عامل ديريفيرانس *:

قيمة الباحث = * بتر ؛ / / قيمة المتغير الأسطوانات

في هذه الحالة ، سيتم تعيين قيمة متغير الأسطوانات لمتغير القيمة. إذا قمت بتغيير قيمة متغير الأسطوانات ، فسينعكس هذا التغيير في متغير القيمة ، لأنه يشير إلى نفس العنوان في الذاكرة.

يمكن أيضا استخدام المشغل & لتمرير عنوان متغير إلى وظيفة كوسيطة. على سبيل المثال:

باطلة موديفيفالو (إنت *بتر) {

* بتر = 20;

}

كثافة العمليات الرئيسية () {

عدد الأسطوانات = 10;

تعديل القيمة (#);

    عدد الأسطوانات = 10 ؛ / / إعلان وتهيئة متغير الأسطوانات

    بتر = # / / تعيين عنوان المتغير الأسطوانات إلى مؤشر بتر

    الوصول إلى قيمة كائن عبر مؤشر:

    برينتف ("القيمة التي أشار إليها بتر: ٪ د

    "،*بتر);

    في هذا المثال ، أعلنا مؤشر ' بتر 'من نوع' إنت '، والتي يمكن تخزين عنوان الكائنات من نوع 'إنت'. ثم قمنا بتعيين عنوان المتغير 'الأسطوانات' إلى مؤشر ' بتر 'باستخدام المشغل'`'. ونتيجة لذلك ، سوف تحتوي على ' بتر 'عنوان المتغير' الأسطوانات ' في الذاكرة.

    ثم استخدمنا ' * 'تسمية المشغل للوصول إلى القيمة التي أشار إليها مؤشر 'بتر'. باستخدام وظيفة 'برينتف' ، ونحن المستمدة القيمة من المتغير 'الأسطوانات'.

    لاحظ أن الإشارة إلى كائن تسمح لنا بتغيير قيمة الكائن نفسه من خلال مؤشر:

    * بتر = 20; // تعيين قيمة جديدة لمتغير الأسطوانات عبر بتر

    مؤشر برينتف ("القيمة الجديدة لمتغير الأسطوانات: ٪ د

    "،الأسطوانات);

    في هذا المثال ، قمنا بتغيير قيمة المتغير 'الأسطوانات' إلى ' 20 'باستخدام المؤشر 'بتر'. ونتيجة لذلك ، فإن قيمة المتغير 'الأسطوانات' ستكون الآن '20'.

    وبالتالي ، فإن إنشاء مرجع لكائن في لغة ج يسمح لنا بالعمل مع الكائنات مباشرة من خلال المؤشرات.

    التلاعب الروابط في اللغة ج

    توفر لغة البرمجة ج القدرة على العمل مع مراجع الكائنات. المرجع هو متغير يحتوي على عنوان ذاكرة كائن. التلاعب مع المراجع في ج تسمح لك بنقل الكائنات حسب المرجع بدلا من القيمة ، وكذلك تغيير قيمة الكائن المشار إليه بواسطة الرابط.

    تستخدم لغة سي عامل التشغيل * لإنشاء مرجع إلى كائن. على سبيل المثال:

    1. إنت س = 5 ؛ / / إعلان المتغير س وتعيينه القيمة 5

    2. إنت * بتر ؛ / / إعلان إشارة إلى إنت

    3. بتر = & س / / تعيين عنوان المتغير س إلى الرابط

    في هذا المثال ، يتم الإعلان عن متغير بتر كمرجع إلى إنت. ثم يتم تعيين المرجع عنوان المتغير س باستخدام & المشغل. الآن بتر هو إشارة إلى س.

    تسمح لك عمليات التلاعب بالروابط بالوصول إلى قيمة الكائن المشار إليه بواسطة الرابط باستخدام عامل التشغيل*. على سبيل المثال:

    الباحث ص = * بتر ؛ / / تعيين قيمة للمتغير ص التي يشار إليها بواسطة بتر

    في هذا المثال ، المتغير ص يأخذ القيمة المشار إليها بواسطة بتر. وهكذا ، ص سيكون مساويا ل 5 ، منذ بتر يشير إلى س ، وهو ما يساوي 5.

    أيضا ، يمكن استخدام المراجع كوسائط للوظائف. عند تمرير مرجع إلى دالة ، يمكنك تغيير قيمة الكائن المشار إليه بواسطة المرجع. على سبيل المثال:

    زيادة الفراغ (كثافة العمليات *ع) {

    (*ع)++ ؛ / / زيادة القيمة بمقدار 1

    }

    كثافة العمليات الرئيسية () {

    كثافة العمليات ض = 10;

    الزيادة (&ض);

    // قيمة ض ستكون 11

    العودة 0;

    }

    في هذا المثال ، تأخذ وظيفة الزيادة إشارة إلى كثافة العمليات. داخل الدالة ، يتم زيادة القيمة المشار إليها بواسطة المرجع بمقدار 1. في الوظيفة الرئيسية ، يتم تمرير إشارة إلى المتغير ض إلى وظيفة الزيادة باستخدام & عامل التشغيل. وبالتالي ، بعد تنفيذ دالة الزيادة ، ستصبح قيمة المتغير ض 11.

    يوفر التلاعب المرجعي في ج المرونة والكفاءة عند العمل مع الكائنات ، مما يسمح لك بنقل وتغيير قيم الكائنات حسب المرجع ، بدلا من القيمة.

    تغيير القيمة عبر رابط

    عندما نقوم بإنشاء مرجع لكائن في ج ، يمكننا استخدام هذا المرجع للوصول إلى قيمة الكائن وتعديلها. يمكن تغيير قيمة كائن عن طريق تعيين قيمة جديدة من خلال مرجع إليها.

    لتغيير قيمة كائن عبر ارتباط اتبع الخطوات التالية:

    حدد متغير نوع مرجع يشير إلى الكائن الذي تريد تغيير قيمته.

    قم بتعيين عنوان الكائن إلى المتغير المرجعي باستخدام عامل أخذ العنوان ("&").

    قم بتغيير قيمة الكائن باستخدام المتغير المرجعي ومشغل إلغاء المرجع ("*").

    لنلق نظرة على مثال حيث نستخدم مرجعا لتغيير قيمة متغير نوع " كثافة العمليات:

    # تشمل