![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Hukuma |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 18.2.2009 Репутация: нет Всего: нет |
Здравствуйте. Объясните, пожалуйста, следующее поведение, я туманно представляю себе почему так получается, но сам себя убедить в этом не могу. Мне нужно в функции f изменить строку s так, чтобы при выводе на экран в функции main строки str её значение было "str2"
в этом случае вывод: str=str1 Если же написать так
то вывод будет str=str2 - то, что мне нужно конкретно я не понимаю, почему первый вариант кода не срабатывает, я же передаю указатель на строку, затем этот же указатель изменяю в функции -> строка в функции main тоже должна измениться. Или ошибка моих рассуждений в том, что когда я подаю указатель на строку в функции f, а затем записываю новое значение в строку, на которую он указывает, то я изменяю копию указателя, которая передается в функцию f? Я же его не разыменовываю -> не обращаюсь к участку памяти, на который указывает указатель s в функции f? я примерно так объясняю себе то, почему первый вариант не срабатывает, но уверенности нет. Объясните, пожалуйста мне. |
||||
|
|||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Строка 9 твоего кода содержит ошибку, на которую компилятор ради совместимости со старым кодом не особо ругается. Строка в двойных кавычках называется строковым литералом и является КОНСТАНТОЙ (т.е. МЕНЯТЬ ее НЕЛЬЗЯ). Поэтому твою 9-ю строку нужно переписать так:
Добавлено через 1 минуту и 3 секунды Кстати, чтобы все заработало, достаточно написать так:
|
||||
|
|||||
Hukuma |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 18.2.2009 Репутация: нет Всего: нет |
bsa, спасибо за ответ, покопался ещё немного и разобрался. Спасибо за замечание насчет const char, я действительно совсем забыл про это.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |