الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار فى تعريف المتغيرات بلغة السى

مغلق
بدأه eng_asa في 13 يوليو 2006 · 6 رد · 732 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لقد بدأت فى تعلم لغة الc مؤخرا

وها هى مشكلتى

لا افهم ما فائدة الدالة void لتى تكتب فى اول البرنامج عامة

كما لاحظت استخدامها مع pointers

مثلا

void code (char*input,char*output,char start)

لم افهم معنى هذا السطر وكيف استفيد به داخل البرنامج

وكذلك ذلك السطر

main(int argc,char *argv[ ])

هل هو مجرد سطر لتعريف المصفوفة والمؤشر الخاص بها

وان كان كذلك فلما وضعناها داخل main

ولم نعرفها كالمعتاد

شكرا

#2

ال void معناها أن الدالة لا ترجع أى قيمة (ولا علاقة لها بالبوينترز) >> void

أما بالنسبة إلى main فيمكن تمرير متغيرات لها عند بداية البرنامج عن طريق ال Command Line أى النافذة السوداء التى تنفذ فيها البرنامج >> main

تم تعديل هذه المشاركة بواسطة Blueteeth في 13 يوليو 2006 في 06:13

#3

كما قال الاخ Blueteeth، لكن أضيف..

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

#4

بالنسبة للدالة

int main( int argc , char *argv[] )

البارامترين argc و argv تستخدم كمتغيرات ادخال عبر consol ومستخدمة كثيرا في برامج اللينكس مثلا لدينا برنامج اسمه make

make -a

هنا ستكون قيمة argc هي 2 اي اسم البرنامج و -a .

و قيمة argv ستكون كالتالي :

argv[0] = " make "

argv[1] = "-a"

هدا كود مثال حتى تفهم اكثر :

#include <stdio.h>
#include <stdlib.h>

int main( int argc, char *argv[] )
{

if ( argc == 1 )
{
   printf("there is no transmitted parametrs !\n");
}

else
{

  printf("there is  %d arguments transmitted from the consol.\n\n", argc);

  for ( int i=0; i<argc; i++ )
   printf("Argument number is : %d\n Value : %s\n\n", i+1, argv);
}


  system("pause");

return 0;
}
#5

شكرا وجزاكم الله خيرا على ردودكم الفيمة

ولكن لى سؤال للسيد pengo

انا استعمل برنامج turbo c

متى وكيف ادخل قيم i/p arguments للدالة main

لأبدأ فى التعامل مع القيمة الدخلة لهم ب peration المختلفة

شكرا مرة اخرى

#6
eng_asa كتب:

شكرا وجزاكم الله خيرا على ردودكم الفيمة

ولكن لى سؤال للسيد pengo

انا استعمل برنامج turbo c

متى وكيف ادخل قيم i/p arguments للدالة main

لأبدأ فى التعامل مع القيمة الداخلة لهم ب operation المختلفة

ما فهمته هو اننا عندما نصنع دالة علينا تعريفها اولا فى بداية البرنامج بتعريف i/p and o/p لها

ثم بعد ذلك ربما فى نهاية البرنامج نضع oprations المطلوب تنفيذها من خلال الدالة

وعنما نريد استدعاء تللك الدالة خلال البرنامج كل ما علينا هو ذكر اسم الدالة وهو سينتقل الى مكان تللك الدالة وسيقوم بتنفيذ محتوياتها وعند الانتهاء منها سيعود مرة أخرى لمسار البرنامج الاصلى (هل ما ذكرته صحيح؟)

سؤالى هو متى سيطلب ادخال قيم المدخلات لتلك الدالة حيث أنه فى برنامجى لم أجد دالة scanf ونما بدا فى وضع operatins مباشرة

وعودة للمثال

هذا هو ما كتب فى بداية البرنامج

(void code (char*input,char*output,char start

([]main(int argc,char* argv

}

( if (argc!=5

{}

{

مع العلم انى استعمل برنامج turboc

اذا متى وكيف سأدخل قيم المدخلات للدالة

أيضا بالنسبة لاستعمال * ما فهمته هو انها تستخدم قبل اسم متغير ما للدلالة على عنوان متغير اخر له قيمة معينة وان كنت لا افهم كيف نستفيد بها

فهل هناك فائدة اخرى لاستخدامها

#7

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

أما الـ* فهي تتبع موضوع متقدّم قليلا يسمّى مؤشرات...

تعلم الدوال أولاً وبعدها تقدم الى المؤشرات.

وإن شئت الطريق الصحيح فعليك بأي كتاب (ويوجد في المنتدى كتب يقترحها بعض الاعضاء) إبدأ بالكتاب من البداية.

أما إن كنت تطرح هذه الأسئلة وأنت تقرأ كتاب فأنصحك باستبداله.

أرجو أن لا تكون نصيحتي قد آذتك، فأنا أريد لك الخير.

وشكرا.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…