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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
#1

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

13.07.2012, 19:15. Просмотров 2909. Ответов 25
Метки нет (Все метки)

Подскажите отличие между

C++
1
2
3
int main(int argc, char *argv[]) {
 //....
}
и
C++
1
2
3
int main(int argc, char** argv) {
 //....
}
И для чего изменяют так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
16.07.2012, 19:05     Отличие char *argv[] от char ** argv #22
Вы видать не поняли, я знаю как пользоваться указателями. Но я не знаю как сделать указатель константным в таком синтаксисе:
C++
1
void func( int p[]);
Скорей всего конечно никак, просто интересно.
alsav22
5416 / 4812 / 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
Эксперт CАвтор FAQ
17533 / 5771 / 369
Регистрация: 30.03.2009
Сообщений: 15,872
Записей в блоге: 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
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 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
Еще ссылки по теме:
C++ Отличие char от string
c++ argv[0] C++
c++ argv C++
C++ Тип char.Signed/unsigned.Отличие типов данных.
argv и argc C++

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

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

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