С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
gsergey50
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 2
#1

Строковый литерал - C++

27.02.2011, 18:06. Просмотров 1113. Ответов 1
Метки нет (Все метки)

Вопрос к профи: Верно ли что, когда мы инициализирум строку вот так: const char *str = "Строка", то компилятор понимает ее так:
1) char temp[] = {'С', 'т', 'р', 'о', 'к', 'а', '\0'} - сначала в памяти создается массив символов с некоторым именем, например temp.
2) const char *str = temp - потом инициализируется указатель на эту строку, т. е. ему присваиватся адрес этой строки в памяти.
В итоге, когда пишем так: const char *str = "Строка", то память будет выделена так: 7 байт для
char temp[] и 4 байта для указателя. Правильно ли Я понял?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2011, 18:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строковый литерал (C++):

Сколько живёт строковый литерал? - C++
Имеется код #include <iostream> using namespace std; class myClass { public: myClass(char *s){str=s;} void...

Строковый литерал и указатель на строку. В чем разница? - C++
Добрый день. Начал только изучать С++, не могу понять в чем разница между указателем на литерал и указателем на строку??? Заранее...

Как правильно возвращать строковый литерал из функции - C++
Строковый литерал по сути представляет собой указатель на данные. Но что если литерал был создан внутри функции и его значение вернуть?...

Как в макросе передать параметр в строковый литерал? - C++
Как в макросе передать параметр в строковый литерал? #define f(s) "left##s##right" не работает. Т.к. по команде cout <<...

"воткнуть" строковый литерал в поток ввода - C++
Подскажите, пожалуйста, как по-быстрому воткнуть строковый литерал в поток ввода? Нужно для тестирования просто, а разбираться со...

Локальный указатель на локальный строковый литерал - C++
Здравствуйте. Подскажите, пожалуйста, почему локальный указатель, созданный в функции, не уничтожается после вызова функции? То есть мы...

1
Evg
Эксперт CАвтор FAQ
18377 / 6424 / 441
Регистрация: 30.03.2009
Сообщений: 17,825
Записей в блоге: 28
27.02.2011, 18:30 #2
Почти правильно. Ошибка только в том, что не "char temp", а "const char temp"

На всякий случай ссылки, где это дело уже обсуждалось:
Изменить значение указателя
Чем по умолчанию инициализируется символьный массив?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2011, 18:30
Привет! Вот еще темы с ответами:

Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наименьшей длины (в том же порядке). - C++
Даны имена двух файлов вещественных чисел. Известно, что первый из них существует и является непустым, а второй в текущем каталоге...

Передать литерал функции - C++
Когда я создаю объект string, я могу написать так: string str = "qwerty"; // или string str("qwerty"); // не суть //...

Что такое широкий литерал? - C++
Что такое широкий литерал? Объясните новичку. Совсем недавно решил изучать C++ по книге

Строквой литерал в двоичном представлении - C++
Добрый день. В учебнике есть задание: составить пользовательский тип который может вместить значение факториала числа 1000 с абсолютной...


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

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

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