Вывести имя и все аргументы main, которые передаются - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, есть такая программа:
#include <stdio.h>
 
int main(int argc, char **argv)
{
    while(*argv++)
        printf("%s\n", *argv);
    return 0;
}
Программа выводит имя и все аргументы которые ей передаются. Вопрос, если у нас в функции указатель на указатель, а в printf только *argv, т.е. она подставляет argv[0], argv[1] ... argv[argc] - получает только текущий элемент, то как она читает, что находится в argv[0], из-за %s? Просто, если я правильно понимаю, то когда мы имеем массив указателей int, чтобы получить конкретно значения в элементе нужно: прочитать элемент *arri и по нему прочесть значение **arri. Если я говорю, что-то не верно, то поправьте и объяснить как правильно и как это работает. А то никак въехать не могу PS. Пишу с телефона, табы не могу поставить

Решение задачи: «Вывести имя и все аргументы main, которые передаются»

textual
Листинг программы
char **p;
p = argv;
while (*argv++)
    printf("%s\n", *argv);

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Объявляется указатель на указатель char, который будет указывать на массив строк (argv).
  2. Указатель p инициализируется значением argv.
  3. В цикле while происходит вывод каждой строки из массива argv с помощью функции printf.
  4. В каждой итерации цикла, указатель argv увеличивается на размер одного указателя, таким образом, каждая следующая строка выводится на новой строке. В итоге, в консоли будет выведена каждая строка из массива argv.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы