Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.65/20: Рейтинг темы: голосов - 20, средняя оценка - 4.65
30 / 28 / 4
Регистрация: 03.06.2010
Сообщений: 465
1

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

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

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

C++
1
2
3
int main(int argc, char *argv[]) {
 //....
}
и
C++
1
2
3
int main(int argc, char** argv) {
 //....
}
И для чего изменяют так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2012, 19:15
Ответы с готовыми решениями:

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

Определение размера char** argv
Есть массив строк char** argv где я знаю число строк argc for (int i = 0; i < argc; i++){ ...

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

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

25
5472 / 4867 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2012, 19:02 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[]?
0
1172 / 885 / 94
Регистрация: 03.08.2011
Сообщений: 2,455
16.07.2012, 19:05 22
Вы видать не поняли, я знаю как пользоваться указателями. Но я не знаю как сделать указатель константным в таком синтаксисе:
C++
1
void func( int p[]);
Скорей всего конечно никак, просто интересно.
0
5472 / 4867 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2012, 19:07 23
Цитата Сообщение от Toshkarik Посмотреть сообщение
alsav22, что я собственно и написал. В примере у Evg указатель на константу а не константный указатель.

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

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

Добавлено через 44 секунды
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вы видать не поняли, я знаю как пользоваться указателями. Но я не знаю как сделать указатель константным в таком синтаксисе:
C++
1
void func( int p[]);
Скорей всего конечно никак, просто интересно.
Ещё раз понял.
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
16.07.2012, 20:15 24
Цитата Сообщение от Toshkarik Посмотреть сообщение
А вот синтаксисом массива в качестве параметра, я не знаю как сделать указатель константным
Вот на таком тесте борландовский компилятор трактует как параметр-константу, msvc, gcc, icc и sun-cc разрешают модифицировать (видимо, правда за большинством)

C
void func (int const ptr[])
{
  ptr++;
}
в итоге получается, что хз как это сдеалть
0
1172 / 885 / 94
Регистрация: 03.08.2011
Сообщений: 2,455
17.07.2012, 09:56 25
Логичней конечно, что бы вообще параметр ( int p[]) в прототипе подразумевал ( int *const p ), но почему то этот момент упустили.
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
17.07.2012, 10:36 26
Цитата Сообщение от Toshkarik Посмотреть сообщение
Логичней конечно
Если ты попробуешь сам придумать какой-нибудь язык программирования, то очень скоро увидишь, что в твоём языке начинают появляться нелогичные вещи, которые ты никак не можешь сделать логичными
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2012, 10:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

int main(int argc, char* argv[]) ?
Зачем нужны аргументы (int argc, char* argv) для функции main() и обязательно ли их писать?

В чем отличие char* s от char *s
В чем отличие char* str; от char *str; ?

В чем отличие двумерного массива типа char от массива указателей на char?
В чем отличие двумерного массива типа char и массива указателей на char ?


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

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