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

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

Войти
Регистрация
Восстановить пароль
 
Ferrari F1
=^_^=
552 / 439 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
#1

Каков тип строковых литералов? - C++

02.08.2015, 08:59. Просмотров 239. Ответов 7
Метки нет (Все метки)

Каков тип rvalue строки "Hello"? const char* const или const char* ?

C++
1
const char* some1 = "Hello";
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2015, 08:59     Каков тип строковых литералов?
Посмотрите здесь:

Сравнение строковых литералов - C++
Добрый день, есть кроссплатформенные гарантии на то, что адреса одного и тоже же строкового литерала внутри одного .exe/.lib будут...

Каков тип второго параметра функций Polyline и Polygon? - C++
Каков тип второго параметра функций Polyline и Polygon?

Суффиксы числовых литералов - C++
в учебнике видел вот такую строчку: const float PI = 3.14159F; или вот такую: longvar = 7678L; вопрос такой: зачем в конце...

Объяснить нюансы использования литералов-перечислителей - C++
Почему в Си не допускается, чтобы один и тот же литерал-перечислитель входил в два различных перечислимых типа? Могут ли совпадать имена...

Как передать массив символьных литералов в функцию? - C++
Могу так? почему то не работает void DailySchedule::Set_Schedule(int* b, int* e, char** c) int main() { DailySchedule D; int...

Как вывести значение переменной bool в виде литералов false и true? - C++
В C++ когда я вывожу значение переменной bool, оно выводится всегда 1 или 0. Как сделать чтобы выводилось false или true, какие аргументы...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.08.2015, 09:02     Каков тип строковых литералов? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
const char[6]
Kerry_Jr
Модератор
Эксперт PHP
2178 / 1974 / 689
Регистрация: 14.05.2014
Сообщений: 5,773
Записей в блоге: 1
Завершенные тесты: 5
02.08.2015, 09:05     Каков тип строковых литералов? #3
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
const char*
можно конечно и const char *const - но это уже больше к самому указателю, нежели к строке, относится.
Ferrari F1
=^_^=
552 / 439 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
02.08.2015, 09:09  [ТС]     Каков тип строковых литералов? #4
Tulosba, Kerry_Jr,
можете пожалуйста кинуть правила преобразования указателей? и в каких случаях в результате преобразования теряются квалификаторы?
В частности интересует, почему можно записать следующее без приведения указателей?
C++
1
char* some = "hello";
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
02.08.2015, 09:25     Каков тип строковых литералов? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Tulosba Посмотреть сообщение
const char[6]
Подкреплю стандартом:
Ordinary string literals and UTF-8 string literals are also referred to as narrow string literals. A narrow string literal has type “array of n const char”, where n is the size of the string as defined below, and has static storage duration
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
и в каких случаях в результате преобразования теряются квалификаторы?
Const - обещание (гарантия) или требование?

Добавлено через 11 минут
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
В частности интересует, почему можно записать следующее без приведения указателей?
С соответствующими опциями не будет:
http://rextester.com/MACX53472
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
02.08.2015, 12:51     Каков тип строковых литералов? #6
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
В частности интересует, почему можно записать следующее без приведения указателей?
Это все ради совместимости со старым кодом. Как вот бывают, например, в русском языке исключения из правил, так и это. Если отключить эту совместимость (что выше и показали), то это не будет работать.
В любом случае, в новом коде такого снятия константности лучше не допускать.
Ferrari F1
=^_^=
552 / 439 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
02.08.2015, 14:06  [ТС]     Каков тип строковых литералов? #7
Cпасибо, Кроесмах и Дрофсет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2015, 14:42     Каков тип строковых литералов?
Еще ссылки по теме:

Каков синтаксис оператора <?( меньше ) - C++
Надо было написать программу, считывающую количество слов, которые пользователь хочет ввести, затем программа считывает каждое слово и...

Цикл в цикле? Каков лучший вариант? - C++
Господа, поделитесь опытом, пожалуйста, для общего блага среди начинающих. Как лучше ввсего организовать цикл в цикле для решения...

Каков современный подход для работы со строками - C++
Здравствуйте, хотел узнать современный подход для работы со строками. В С++ так же используется библиотека #include &lt;string&gt;, а методы для...

Каков будет результат при заданных условиях - C++
А что если повторяющиеся элементы будут на 0 и 1 индексах


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17534 / 5772 / 369
Регистрация: 30.03.2009
Сообщений: 15,880
Записей в блоге: 26
02.08.2015, 14:42     Каков тип строковых литералов? #8
Цитата Сообщение от Tulosba Посмотреть сообщение
const char[6]
Исходный пример, грубо говоря, эквивалентен

C
void foo (void)
{
  const char a[6] = "Hello";
  const char *p;
  p = a;
}
тип "a" действительно есть "const char[6]", однако правая часть выражения эквивалентна "&a[0]" с типом "const char *". Со строковым литералом всё аналогично

Ну и ТС'у может ссылка чем-то поможет http://www.cyberforum.ru/blogs/18334/blog97.html
Yandex
Объявления
02.08.2015, 14:42     Каков тип строковых литералов?
Ответ Создать тему
Опции темы

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