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

Отличие char *argv[] от char ** argv - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
No10
 Аватар для No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
13.07.2012, 19:15     Отличие char *argv[] от char ** argv #1
Подскажите отличие между

C++
1
2
3
int main(int argc, char *argv[]) {
 //....
}
и
C++
1
2
3
int main(int argc, char** argv) {
 //....
}
И для чего изменяют так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2012, 19:15     Отличие char *argv[] от char ** argv
Посмотрите здесь:

C++ Тип char.Signed/unsigned.Отличие типов данных.
Что есть argc и **argv в функции int main(int argc, char **argv)? C++
c++ argv C++
C++ Аргументы main(int argc, char *argv[])
C++ Подскажите пожалуйста с int main(int argc, char*argv[])
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2012, 19:02     Отличие char *argv[] от char ** argv #21
Цитата Сообщение от Toshkarik Посмотреть сообщение
А вот синтаксисом массива в качестве параметра, я не знаю как сделать указатель константным.
А так что, нельзя?
C++
1
2
3
4
5
6
7
8
9
10
11
12
void f(int *const p)
{
    p[0] = 0;
}
  
 int main()
 {
    int x[4];
    f(x);
 
    return 0;
 }
или имеется ввиду запись типа p[]?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
16.07.2012, 19:05     Отличие char *argv[] от char ** argv #22
Вы видать не поняли, я знаю как пользоваться указателями. Но я не знаю как сделать указатель константным в таком синтаксисе:
C++
1
void func( int p[]);
Скорей всего конечно никак, просто интересно.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2012, 19:07     Отличие char *argv[] от char ** argv #23
Цитата Сообщение от Toshkarik Посмотреть сообщение
alsav22, что я собственно и написал. В примере у Evg указатель на константу а не константный указатель.

Добавлено через 2 минуты

Этим я показал константный указатель.
Понял.

Добавлено через 44 секунды
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вы видать не поняли, я знаю как пользоваться указателями. Но я не знаю как сделать указатель константным в таком синтаксисе:
C++
1
void func( int p[]);
Скорей всего конечно никак, просто интересно.
Ещё раз понял.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,126
Записей в блоге: 26
16.07.2012, 20:15     Отличие char *argv[] от char ** argv #24
Цитата Сообщение от Toshkarik Посмотреть сообщение
А вот синтаксисом массива в качестве параметра, я не знаю как сделать указатель константным
Вот на таком тесте борландовский компилятор трактует как параметр-константу, msvc, gcc, icc и sun-cc разрешают модифицировать (видимо, правда за большинством)

C
void func (int const ptr[])
{
  ptr++;
}
в итоге получается, что хз как это сдеалть
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.07.2012, 09:56     Отличие char *argv[] от char ** argv #25
Логичней конечно, что бы вообще параметр ( int p[]) в прототипе подразумевал ( int *const p ), но почему то этот момент упустили.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2012, 10:36     Отличие char *argv[] от char ** argv
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,126
Записей в блоге: 26
17.07.2012, 10:36     Отличие char *argv[] от char ** argv #26
Цитата Сообщение от Toshkarik Посмотреть сообщение
Логичней конечно
Если ты попробуешь сам придумать какой-нибудь язык программирования, то очень скоро увидишь, что в твоём языке начинают появляться нелогичные вещи, которые ты никак не можешь сделать логичными
Yandex
Объявления
17.07.2012, 10:36     Отличие char *argv[] от char ** argv
Ответ Создать тему
Опции темы

Текущее время: 00:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru