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

كيفية تمرير مؤشر إلى وظيفة ج: أمثلة وشرح

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

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

برينتف ("القيمة: ٪ د" ، القيمة);

  1. العودة 0;
  2. }

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

بعد استدعاء الدالة وتغيير قيمة متغير القيمة ، نقوم بإخراج قيمة جديدة باستخدام وظيفة برينتف. نتيجة لتنفيذ هذا البرنامج ، يتم إخراج "القيمة: 10" ، حيث تم تغيير قيمة المتغير داخل الوظيفة باستخدام المؤشر الذي تم تمريره.

تمرير مؤشر إلى وظيفة في ج: أمثلة وشرح

أمثلة على تمرير مؤشر إلى دالة

سؤال وجواب

كيف يمكنني تمرير مؤشر إلى وظيفة?

ما هي بعض الأمثلة على استخدام المؤشرات في وظائف?

كيف أعلن وظيفة تقبل مؤشر إلى صفيف?

هل يمكنني تمرير مؤشر إلى مؤشر إلى وظيفة?

تمرير مؤشر إلى وظيفة في ج: أمثلة وشرح

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

مثال على تمرير مؤشر إلى دالة:

# تشمل

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

* س + = 1;

}

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

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

الزيادة (#);

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

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

العودة 0;

}

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

مثال آخر على تمرير المؤشرات إلى دالة:

# تشمل

مقايضة الفراغ (كثافة العمليات *أ ، كثافة العمليات *ب) {

إنت تيمب = * أ;

* أ = * ب;

* ب = درجة الحرارة;

}

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

إنت س = 10;

إنت ص = 20;

برينتف ("القيم الأولية للمتغيرات: س = ٪ د ، ص = ٪ د

"،س ، ص);

مبادلة (&س, & ص);

برينتف ("قيم المتغيرات بعد التبادل: س = ٪ د ، ص = ٪ د

"،س ، ص);

العودة 0;

}

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

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

أمثلة على تمرير مؤشر إلى دالة

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

مثال 1:

# تشمل

باطل الملحق (إنت* عدد) {//إعلان وظيفة مع مؤشر كمعلمة

}

في هذا المثال ، الدالة

أدون

يقبل مؤشر إلى

متغير نوع كثافة العمليات

. داخل الدالة ، يتم زيادة قيمة هذا المتغير بمقدار 1. لتمرير مؤشر إلى

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

إلى الوظيفة ، تحتاج إلى استخدام

المشغل

.

المثال 2:

# تشمل

مبادلة الفراغ (إنت* أ ، إنت* ب) {//إعلان وظيفة مع مؤشرات كمعلمات

إنت تيمب = * أ ؛ / / متغير مؤقت لتبادل القيم

* أ = * ب;

، وظيفة المبادلة

يقبل مؤشرين لمتغيرات النوع

كثافة العمليات

. داخل الوظيفة ، يتم تبادل قيم متغيرين باستخدام متغير مؤقت. لتمرير المؤشرات إلى المتغيرات

x

و

y

إلى وظيفة ، استخدم

المشغل

.

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