|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.09.2011, 16:08 | #1 |
Форумчанин
Регистрация: 02.10.2009
Сообщений: 255
|
const char * str
Почему у меня в функциях строки должны быть обязательно const.
Например:int replace(char * str, char c1, char c2); Пишет ошибку: file24.cpp:8: warning: deprecated conversion from string constant to ‘char*’ А если переделать так: int replace(const char * str, char c1, char c2);, то всё правильно!
"Реальность воображаема, а воображаемое - реально" В. Соло
|
12.09.2011, 16:15 | #2 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
связано предупреждение с тем что в компилятор встроенна поддержка std::string, потому символьные литералы считаются либо const char*, либо как std::string, хотя и есть автоприведение к char*, но оно считается устаревшим. кстати, интересный вопрос к знающим, const char*, это константный указатель или все-таки указатель на константные данные?(или и то и то?) мне почему то кажется что и то и то, и тогда верно все складывается, для функций оно означает что они не именяют данные переданные через указатель. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
12.09.2011, 16:15 | #3 | ||
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
p.s. вопрос смешной UPD: Цитата:
|
||
12.09.2011, 16:20 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну я имел в виду, что данные по такому указателю нельзя менять.
я прав? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
12.09.2011, 16:25 | #5 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Код:
Код:
|
12.09.2011, 16:26 | #6 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
ну да, вродь даж в К&R написано что читать такие шутки надо справа налево
const char * s указатель на константу char * const s константный указатель (почти как ссылка) |
12.09.2011, 16:29 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я просто не читал, а сейчас голова ппц, потому решил спросить между делом.
спасибо за ответы. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.09.2011, 19:55 | #8 |
Пользователь
Регистрация: 02.04.2011
Сообщений: 36
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
'int' в 'const char *' | frommars | Visual C++ | 5 | 05.07.2011 19:24 |
'unsigned char [512]' в 'const char *' | frommars | Visual C++ | 8 | 02.07.2011 13:37 |
Ошибка Could not find a match for 'Pos(TStringStream *,const char *)' | bulldog5293 | C/C++ Сетевое программирование | 1 | 09.04.2011 12:19 |
преобразование типов char-const char | student101 | Помощь студентам | 8 | 01.12.2010 20:45 |
Конвертирование из const char*(System::String) в LPCWSTR | Eros | Общие вопросы .NET | 1 | 27.05.2010 12:36 |