![]() |
|
Модераторы: bsa |
![]()
|
|
| vik5252 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
*argv[] - один из параметров функции int main( int argc, char *argv[])
Я запутался в понятиях языка, и немогу разобраться, хоть и перечитывал неоднократно. argv - указатель на массив символьных указателей, каждый из которых указывает на строку, содержащую аргумент функции. Тогда argv[] - массив этих указателей. Но почему в параметрах функции он прописывается, как *argv[] ? Почему впереди ставиться символ звездочки, какова его грамматическая роль с точки зрения языка С++ ? И вообще, почему в параметрах функции оказался массив, когда в книге написано, что в общем случае массив неможет быть параметром функции ? |
|||
|
||||
| Ln78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
vik5252, возможно такая последовательность поможет:
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
char* - строка (указатель на последовательность символов)
char*[] - массив строк (массив указателей) main принимает число параметров и массив параметров в виде строк можно написать
или с другой стороны: вспоминаем, что строка в С это массив символов, т.е. char[] или char*. Тогда массив строк - это массив массивов или массив указателей или указатель на указатели, т.е. char[][] или char*[] или char** - в данном случае это эквивалентные объявления. Это сообщение отредактировал(а) baldina - 11.5.2008, 15:31 |
|||
|
||||
| vik5252 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
если
массив из 12-ти символьных указателей, то инструкция
выведет на экран строку, на которую указывает указатель изданного массива с индексом 3, но как программа узнает, что нужно вывести на экран - один символ или всю строку? |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
по типу аргумента. parr[3] имеет тип char*
Добавлено через 2 минуты и 55 секунд сравни с
|
|||
|
||||
| warmonger_ |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.7.2007 Где: г. Киев Репутация: 1 Всего: 3 |
а "ей" и знать не нужно... "она" обращается по адресу и читает начиная с него, пока не встретит '\0'. --------------------
Make everything as simple as possible, but not simpler.Albert Einstein |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |