- •Тема 6. Структуры
- •6.1 Понятие структуры в языке Си
- •6.2 Объявление типа структуры
- •6.3 Декларация переменных структурного типа
- •6.4 Доступ к элементам структурной переменной
- •6.5 Массивы структур
- •6.6 Оператор sizeof
- •6.7 Декларация typedef
- •7.2 Определение функции
- •7.3 Функции, вызывающие, I функции, вызываемые
- •7.4 Связи по данным между функциями
- •7.4.1 Вызов функции
- •7.4.2 Инструкция return (возврат)
- •7.5 Аппарат формальных и фактических аргументов
- •Входные аргументы;
- •Выходные аргументы;
- •Аргументы, которые обновляются.
- •7.6 Прототип функции
- •Тема 8. Передача аргументов функций
- •8.1 Способы передачи аргументов
- •8.1.1 Передача аргументов по значению
- •8.1.2 Передача аргументов по имени
- •8.1.3 Передача аргументов по ссылке
- •8.2 Особенности передачи аргументов в языке Си
- •8.3 Особые случаи передачи аргументов
- •8.3.1 Передача аргументом одномерного массива
- •Пример 6: сумма елеметiв массива (вариант 1).
- •Пример 7: сумма елеметiв массива (вариант 2).
- •8.3.2 Передача аргументом многомерного массива
- •8.3.3 Передача аргументом структуры
- •8.4 Аргументы командной строки
8.4 Аргументы командной строки
В командной строке исполняемого файла, можно передать аргументы, записывая их через пробел. Эти аргументы, которые записаны в командной строке, являютсяфактическими для функции main . Формальные аргументы для функции main создаются ОС. Поэтому в функции main нужно уметь их обрабатывать.
Аргументы (формальные) функции main:
-
argc ( argument count ): количество аргументов командной строки;
-
argv ( argument vector ): указатель на массив строк, содержащий самые аргументы.
Пример 20: программа echo для печати аргументов командной строки,
которые между собой разделены символом _ (чтобы отличить строку результата
от входного).
Если командная строка содержит
C:> echo Главная функция
то программа echo напечатает
C:> echo_Головна_функцiя
Для программы echo операционная система построит такие фактические аргументы:
-
argv [0] всегда именем исполняемого файла.
-
argv [argc] должно быть пустым указателем (NULL).
Пример 21: текст программы echo (вариант 1).
# include
main (int argc, char * argv [])
{Int i;
for (i = 0; i <argc; i + +)
printf ("% s% s", argv [i], (i <argc-1)? "_":"");
printf ("\ n");
return 0;
}
Пример 22: текст программы echo (вариант 2).
# include
main (int argc, char * argv [])
{While (- argc> = 0)
printf ("% s% s", + + + argv, (argc> 1)? "_":"");
printf ("\ n");
return 0;
}
! Аргументы командной строки являются строками.