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

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

Войти
Регистрация
Восстановить пароль
 
Solyanko
Сообщений: n/a
#1

Строковый литерал и указатель на строку. В чем разница? - C++

05.07.2012, 16:25. Просмотров 833. Ответов 10
Метки нет (Все метки)

Добрый день.
Начал только изучать С++, не могу понять в чем разница между указателем на литерал и указателем на строку???
Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 16:25     Строковый литерал и указатель на строку. В чем разница?
Посмотрите здесь:

Как в макросе передать параметр в строковый литерал? C++
C++ В чем разница.
В чем разница? C++
Строковый литерал C++
C++ в чем разница?
C++ Локальный указатель на локальный строковый литерал
В чем разница C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.07.2012, 18:29     Строковый литерал и указатель на строку. В чем разница? #2
Solyanko, приведите примеры этих самых указателей, чтобы стало понятно, что вы имеете ввиду.
Catstail
Модератор
 Аватар для Catstail
21784 / 10508 / 1705
Регистрация: 12.02.2012
Сообщений: 17,513
08.07.2012, 15:23     Строковый литерал и указатель на строку. В чем разница? #3
Думаю, разницы нет.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.07.2012, 15:30     Строковый литерал и указатель на строку. В чем разница? #4
строковый литерал - константная строка
соответственно в c++ это const char*
в си это все тот же char*

разница в том, что эту строку нельзя менять (ну не стоит во всяком случае)
Catstail
Модератор
 Аватар для Catstail
21784 / 10508 / 1705
Регистрация: 12.02.2012
Сообщений: 17,513
08.07.2012, 15:32     Строковый литерал и указатель на строку. В чем разница? #5
"разница в том, что эту строку нельзя менять (ну не стоит во всяком случае)" - и не получится...
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.07.2012, 15:35     Строковый литерал и указатель на строку. В чем разница? #6
иначе бывает
C
1
2
3
4
5
6
7
char* str = "hello";
 
int main() {
  str [0] = 'H';
  printf ("%s\n", str);
  return 0;
}
Segmentation fault
Добавлено через 2 минуты
Catstail, в си вообще нет понятия константности, так что компилятор сильно и не ограничивает
в cpp опять же это дело обходится либо жестким кастом (static_cast, с-каст), либо const_cast - но там опять сам дурак
Catstail
Модератор
 Аватар для Catstail
21784 / 10508 / 1705
Регистрация: 12.02.2012
Сообщений: 17,513
08.07.2012, 15:36     Строковый литерал и указатель на строку. В чем разница? #7
А если:

C++
1
2
3
4
5
6
7
8
9
char* str = "hello";
char   Nw[6];
 
int main() {
  strcpy(Nw,str)
  Nw[0] = 'H';
  printf ("%s\n", Nw);
  return 0;
}
Это - сколько угодно...
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.07.2012, 15:41     Строковый литерал и указатель на строку. В чем разница? #8
Catstail, это вы к чему? что незаконного в этом коде?
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.07.2012, 15:43     Строковый литерал и указатель на строку. В чем разница? #9
const char[] - строковый литерал
const char* - указатель на константную строку
Catstail
Модератор
 Аватар для Catstail
21784 / 10508 / 1705
Регистрация: 12.02.2012
Сообщений: 17,513
08.07.2012, 15:46     Строковый литерал и указатель на строку. В чем разница? #10
Silet_1991: Все законно. Я хотел подчеркнуть (для автора вопроса), что строковый литерал через указатель модифицировать не удастся. А переменную - пожалуйста.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2012, 16:07     Строковый литерал и указатель на строку. В чем разница?
Еще ссылки по теме:

C++ В чем разница?
Строковый тип. Перевернуть строку C++
C++ Сколько живёт строковый литерал?
C++ разница между указатель на функцию и функция возврата указателя?
C++ '0' и 0, в чем разница?

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17185 / 5439 / 337
Регистрация: 30.03.2009
Сообщений: 14,748
Записей в блоге: 26
08.07.2012, 16:07     Строковый литерал и указатель на строку. В чем разница? #11
http://www.cyberforum.ru/blogs/18334/blog97.html
Yandex
Объявления
08.07.2012, 16:07     Строковый литерал и указатель на строку. В чем разница?
Ответ Создать тему
Опции темы

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