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

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

Войти
Регистрация
Восстановить пароль
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 338
#1

Строка == массив элементов char? - C++

26.01.2016, 20:15. Просмотров 171. Ответов 5
Метки нет (Все метки)

Есть следующий код:
C++
1
2
3
4
5
int main() {
char* s = "HELLO\n";
s[0] = 'X';
    return 0;
}
Почему я не могу так сделать? По сути я имею указатель на первый элемент моего массива (строки). Моя строка не константная... Почему не могу изменить элемент? Или строка != массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2016, 20:15     Строка == массив элементов char?
Посмотрите здесь:

C++ Массив int из char
Строка: Как расположить буквы в первом массиве, который типа char, в порядке убывания или возрастания частоты появления букв в тексте? C++
Строка: Строку разбить на слова и слова запихнуть в массив char. C++
C++ Составить новый массив, изменяя значения элементов в зависимости от того, отсортирована ли текущая строка
C++ Создать иерархию классов, представляющих простое наследование. Базовый класс – строка символов (char *)
C++ Двумерный массив: строка, в которой находится самая длинная серия одинаковых элементов
Char* в массив char C++
Массив char в переменную char C++
Копирование char* в массив char[i]* C++
Перевод элементов из string в массив char C++
Посмотрите ошибки: switch и строка в char C++
C++ Можно ли в С++ создать матрицу, строки которой имеют разный тип (например, 1-я строка - bool, 2-я - char)?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
26.01.2016, 20:22     Строка == массив элементов char? #2
Цитата Сообщение от BESSON_off Посмотреть сообщение
C++
1
char* s = "HELLO\n";
s является указателем на константный объект, который не подлежит изменению
8-BITOV
527 / 469 / 84
Регистрация: 05.05.2014
Сообщений: 1,094
26.01.2016, 20:24     Строка == массив элементов char? #3
Цитата Сообщение от BESSON_off Посмотреть сообщение
Почему я не могу так сделать?
Некоторые компиляторы записывают в этом случае "HELLO\n" в защищенную область. Напиши
C++
1
char s[] = "HELLO\n";
castaway
Эксперт С++
4870 / 3009 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
26.01.2016, 20:28     Строка == массив элементов char? #4
Цитата Сообщение от BESSON_off Посмотреть сообщение
Почему не могу изменить элемент?
Потому что указатель указывает на строковой литерал - константу.
Сообщением выше указан изменяемый вариант.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 338
26.01.2016, 20:45  [ТС]     Строка == массив элементов char? #5
Спасибо...
Ответ пришел в голову сразу после написания темы +)
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12526 / 7088 / 797
Регистрация: 27.09.2012
Сообщений: 17,496
Записей в блоге: 2
Завершенные тесты: 1
26.01.2016, 21:03     Строка == массив элементов char? #6
Строковые литералы в Си/Си++
Yandex
Объявления
26.01.2016, 21:03     Строка == массив элементов char?
Ответ Создать тему
Опции темы

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