اريد فهم الفرق بين argv et argc

اريد فهم الفرق بين argv et argc

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

waelaljamal أضف ردا

مرحبا عبد الرزاق،

argc : يعني argument count وهو عدد الباراميترات الممررة للتابع ويكون رقم 1,2,3 ..

argv: يعني argument vector مصفوفة البارامترات و تحميل قيمها

argv هي مصفوفة من بعد واحد عدد عناصرها يساوي argc وتكون عناصرها من نوع String سلاسل نصية

يبين المثال السابق استخدام هذين المتحولين لقراءة القيم الممررة للتابع عند الاستدعاء

حيث نأخذ قيم المتحولات بالتسلسل عن طريق index دليل العنصر في المصفوفة

ضمن المثال استدعينا البرنامج باستخدام الأمر التالي: test a1 b2 c3/.

أي نفذ البرنامج الموجود في الملف test و مرر له القيم النصية a1 b2 c3 , اسم مسار الملف

و نعود لطباعتها ضمن البرنامج في الحلقة ..

argc :argument count هو عدد الوسائط التي يتم تمريرها إلى برنامجك من سطر الأوامر،

argv :argument vector هو مصفوفة الوسائط.

هذه هي المتغيرات التي تم تمريرها إلى الوظيفة الرئيسية عند بدء التنفيذ. عندما ندير برنامجًا ، يمكننا تقديم argument لهذا البرنامج مثل -

$ ./a.out hello

مثال

مرحبا هنا argument للملف التنفيذي. يمكن الوصول إلى هذا في برنامجك. #include

using namespace std;

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

   cout << "This program has " << argc << " arguments:" << endl;

   for (int i = 0; i < argc; ++i) {

      cout << argv[i] << endl;

   }

   return 0;

}

عندما تقوم بتجميع وتشغيل هذا البرنامج:

$ ./a.out hello people

Output

سيعطي هذا الإخراج، هذا البرنامج الذي يحتوي على ثلاث argument

C:\Users\user\Desktop\hello.exe

hello

people

لاحظ أن الوسيطة الأولى هي دائمًا موقع التنفيذ القابل للتنفيذ.