| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > *argv[] |
| Автор: vik5252 11.5.2008, 14:37 |
| *argv[] - один из параметров функции int main( int argc, char *argv[]) Я запутался в понятиях языка, и немогу разобраться, хоть и перечитывал неоднократно. argv - указатель на массив символьных указателей, каждый из которых указывает на строку, содержащую аргумент функции. Тогда argv[] - массив этих указателей. Но почему в параметрах функции он прописывается, как *argv[] ? Почему впереди ставиться символ звездочки, какова его грамматическая роль с точки зрения языка С++ ? И вообще, почему в параметрах функции оказался массив, когда в книге написано, что в общем случае массив неможет быть параметром функции ? |
| Автор: Ln78 11.5.2008, 15:03 | ||
vik5252, возможно такая последовательность поможет:
|
| Автор: baldina 11.5.2008, 15:31 | ||
| char* - строка (указатель на последовательность символов) char*[] - массив строк (массив указателей) main принимает число параметров и массив параметров в виде строк можно написать
или с другой стороны: вспоминаем, что строка в С это массив символов, т.е. char[] или char*. Тогда массив строк - это массив массивов или массив указателей или указатель на указатели, т.е. char[][] или char*[] или char** - в данном случае это эквивалентные объявления. |
| Автор: vik5252 11.5.2008, 15:54 | ||||
если
массив из 12-ти символьных указателей, то инструкция
выведет на экран строку, на которую указывает указатель изданного массива с индексом 3, но как программа узнает, что нужно вывести на экран - один символ или всю строку? |
| Автор: baldina 11.5.2008, 16:07 | ||
| по типу аргумента. parr[3] имеет тип char* Добавлено через 2 минуты и 55 секунд сравни с
|