Что означает int argc, char * argv []?

(from a in db.Assignments
     join b in db.Deliveryboys on a.AssignTo equals b.EmployeeId  

     //from d in eGroup.DefaultIfEmpty()
     join  c in  db.Deliveryboys on a.DeliverTo equals c.EmployeeId into eGroup2
     from e in eGroup2.DefaultIfEmpty()
     where (a.Collected == false)
     select new
     {
         OrderId = a.OrderId,
         DeliveryBoyID = a.AssignTo,
         AssignedBoyName = b.Name,
         Assigndate = a.Assigndate,
         Collected = a.Collected,
         CollectedDate = a.CollectedDate,
         CollectionBagNo = a.CollectionBagNo,
         DeliverTo = e == null ? "Null" : e.Name,
         DeliverDate = a.DeliverDate,
         DeliverBagNo = a.DeliverBagNo,
         Delivered = a.Delivered

     });
465
задан Rodrigo de Azevedo 17 April 2018 в 05:11
поделиться

5 ответов

argv и argc - это то, как аргументы командной строки передаются в main () в C и C ++.

argc будет количеством строк, на которые указывает argv . Это будет (на практике) 1 плюс количество аргументов, так как практически все реализации будут добавлять имя программы к массиву.

Переменные называются argc ( количество аргументов ) и argv ( вектор аргументов ) по соглашению, но они могут быть заданы любой допустимый идентификатор: int main (int num_args, char ** arg_strings) одинаково допустим.

Их также можно полностью опустить, получив int main () , если вы не собираетесь обрабатывать аргументы командной строки.

Попробуйте следующую программу:

#include <iostream>

int main(int argc, char** argv) {
    std::cout << "Have " << argc << " arguments:" << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << argv[i] << std::endl;
    }
}

Запуск с ./ test a1 b2 c3 выведет

Have 4 arguments:
./test
a1
b2
c3
613
ответ дан 22 November 2019 в 22:49
поделиться

argc - количество аргументов передается в вашу программу из командной строки, а argv - это массив аргументов.

Вы можете перебирать аргументы, зная их количество, например:

for(int i = 0; i < argc; i++)
{
    // argv[i] is the argument at index i
}
50
ответ дан 22 November 2019 в 22:49
поделиться

Параметры main представляют собой параметры командной строки, переданные программе при запуске. Параметр argc представляет количество аргументов командной строки, а char *argv[] - массив строк (указателей символов), представляющих отдельные аргументы, предоставленные в командной строке.

8
ответ дан 22 November 2019 в 22:49
поделиться

Первый параметр - это количество предоставленных аргументов, а второй параметр - это список строк, представляющих эти аргументы.

4
ответ дан 22 November 2019 в 22:49
поделиться

Оба из

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

являются законными определениями точки входа для программы C или C ++. Страуструп: FAQ по стилю и технике C ++ подробно описывает некоторые варианты, которые возможны или разрешены для вашей основной функции.

1
ответ дан 22 November 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: