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

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

27.02.2011, 18:06. Просмотров 1136. Ответов 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++):

Сколько живёт строковый литерал?
Имеется код #include <iostream> using namespace std; class myClass {...

Как в макросе передать параметр в строковый литерал?
Как в макросе передать параметр в строковый литерал? #define f(s)...

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

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

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

Локальный указатель на локальный строковый литерал
Здравствуйте. Подскажите, пожалуйста, почему локальный указатель, созданный в...

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

На всякий случай ссылки, где это дело уже обсуждалось:
http://www.cyberforum.ru/cpp-beginners/thread34803.html#post165013
http://www.cyberforum.ru/cpp-beginners/thread147169.html#post814481
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2011, 18:30
Привет! Вот еще темы с решениями:

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

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

Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)
Подскажите, как объявить пустой глобальный строковый массив из 16 элементов? ...

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


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

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

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