Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PaulVIT
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 9
#1

Аргумент argv в функции main() - C++

31.08.2016, 11:05. Просмотров 201. Ответов 5
Метки нет (Все метки)

Здравствуйте.
Возникли некоторые непонимания при работе с аргументом argv и указателями в целом.

Мне сказали, что, при передаче адреса массива символов в cout, C++ автоматически выведет весь массив.
Почему же тогда, чтобы обратиться к массиву символов, на которые указывает argv, нужно писать именно argv[x]? Ведь argv[x] = *(argv + x), а конструкция вида argv + x уже возвращает адрес массива.

То есть мне казалось, что *(argv+x) означает: взять адрес и вернуть то, что в нем записано. А адрес массива - это адрес его первого элемента.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 11:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргумент argv в функции main() (C++):

Что есть argc и **argv в функции int main(int argc, char **argv)? - C++
Здраствуйте, уважаемые кодеры! Что означает argc и **argv в функции int main(int argc, char **argv), ни как не могу понять эти переменные...

что такое int argc, char *argv[] в качестве параметров главной (main) функции? - C++
И зачем

Чтение из файла, название передано как параметры функции main argc & argv - C++
Вообще дано задание - считать из файла чётные строки, название файла должно быть передано как параметр при запуске из командной строки.. ...

Путь к файлу вводится в командной строке как аргумент функции main() - C++
. Путь к файлу вводится в командной строке как аргумент функции main(). Как это написать?

Аргументы main(int argc, char *argv[]) - C++
Эксперты в с++,объясните пожалуйста новичку примерно понял как использовать эти аргументы,но не как не могу понять куда писать то что он...

Подскажите пожалуйста с int main(int argc, char*argv[]) - C++
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc>1 то программе передан хотя бы один аргумент, если...

5
Martein
Оператор ЭВМ 6 разряда
674 / 85 / 13
Регистрация: 22.06.2014
Сообщений: 177
31.08.2016, 11:19 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
На самом деле вас обманули про argv. argv имеет тип char**, что означает указатель на массив указателей на char. Конструкция вида argv[i] указывает на i-ый указатель в массиве argv, который в свою учередь указывает на первый символ i-го параметра. Исходя из этого строка cout << argv выведет адрес самого массива argv (char**), а вот уже обращаясь по индексу к массиву возвращаться будут char*, то есть строки в стиле Си, содержащие параметры программы.
1
PaulVIT
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 9
31.08.2016, 11:30  [ТС] #3
Что ж, это многое объясняет.
Только не понятно, почему аргумент представлен как char* argv[]. Это ведь означает массив указателей или я что-то путаю?
0
HelicopterK52
660 / 203 / 28
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
31.08.2016, 11:34 #4
Цитата Сообщение от PaulVIT Посмотреть сообщение
Это ведь означает массив указателей или я что-то путаю?
Ну, как бэ и да и нет, но не будем об этом.
Цитата Сообщение от PaulVIT Посмотреть сообщение
почему аргумент представлен как char* argv[]
char *argv[] и char **argv эквивалентны.
0
PaulVIT
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 9
31.08.2016, 12:32  [ТС] #5
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Ну, как бэ и да и нет
Это как?
0
DarkVortex
103 / 69 / 18
Регистрация: 07.07.2014
Сообщений: 239
31.08.2016, 13:01 #6
PaulVIT, можно считать это двумерным массивом
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2016, 13:01
Привет! Вот еще темы с ответами:

Возможно ли использовать имя файла как аргумент main()? - C++
Хочу добиться разного поведения при разных именах exe'шника. Это возможно, не используя батник и стандартный ввод аргументов?

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

int main() и int _tmain(int argc, _TCHAR* argv[]) - C++
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include &quot;stdafx.h&quot; int...

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции - C++
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости от выбранной функции \varphi (x), аргумент которой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
31.08.2016, 13:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru