Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/36: Рейтинг темы: голосов - 36, средняя оценка - 4.58
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582

Что такое литерал?

24.07.2011, 13:44. Показов 7560. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что такое литерал? Это синоним переменной? Или констант? Если нет, то в чем отличие?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.07.2011, 13:44
Ответы с готовыми решениями:

Что такое метод equals() и что такое класс Object
Ответи на два вопроса очень надо 1) Что такое метод equals(). Чем он отличается от операции ==. 2) Что такое класс Object? Какие в нем...

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

Литерал - что делать с указателем?
Недавно увидел нечто подобное. Раньше считал, что литерал может быть преобразован только в char - т.е. храниться на стеке, а там уже в...

17
 Аватар для StaFox
2 / 2 / 1
Регистрация: 27.03.2009
Сообщений: 52
24.07.2011, 13:49
Литералом называется символ в шаблоне регулярного выражения (RegEx)

Почитайте подробнее о регулярных выражениях.
0
24 / 24 / 11
Регистрация: 28.12.2010
Сообщений: 142
24.07.2011, 13:53
Литералъ

Добавлено через 2 минуты
Цитата Сообщение от StaFox Посмотреть сообщение
Литералом называется символ в шаблоне регулярного выражения (RegEx)
StaFox, это частный случай, понятие имеет более широкое значение.
0
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582
24.07.2011, 13:54  [ТС]
Цитата Сообщение от StaFox Посмотреть сообщение
Литералом называется символ в шаблоне регулярного выражения (RegEx)

Почитайте подробнее о регулярных выражениях.
Видимо это какие-то другие литералы. Про регулярные выражения в 3 главе Шилдта нет ни 1 упоминания.

Литералъ
Я читал. Но википедия так и не дала мне ответ на вопросы из 1 сообщения.
0
 Аватар для StaFox
2 / 2 / 1
Регистрация: 27.03.2009
Сообщений: 52
24.07.2011, 13:58
В таком случае, я считаю их синонимами слова "значение переменной".
Как сказано в вики
C#
1
2
bool flag = true;
int a = 100;
true - логический литерал, 100 - числовой

И в том и втом случает это значение переменной.
0
24 / 24 / 11
Регистрация: 28.12.2010
Сообщений: 142
24.07.2011, 14:00
Я считаю что это понятие относится больше к константе.

Литералы позволяют задать в программе значения для числовых, символьных, строковых выражений и др...
0
15 / 12 / 4
Регистрация: 03.02.2011
Сообщений: 96
24.07.2011, 14:05
Шилдт вроде всё описал понятно. Возьми книгу и там подробно описано.

Простое определение: литерал - это фиксированные значения, представленные в понятной форме. Например, число 100 - это литерал. Литералы также называют константами.

Добавлено через 1 минуту
PAVEL_USER, согласен. По существу это применимо к константе, а не к переменной. Я написал это выше.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
24.07.2011, 14:11
Цитата Сообщение от Nubik756 Посмотреть сообщение
Я читал. Но википедия так и не дала мне ответ на вопросы из 1 сообщения.
Понятным же языком написано:
Литерал (англ. literal — константа) — запись в исходном коде компьютерной программы, представляющая собой фиксированное значение
Совет: не используй в тексте программы одинаковый литерал более чем в одном месте программы. Потом легче редактировать код будет, править пути и названия файлов например.
0
 Аватар для AlexP11223
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 582
24.07.2011, 14:15  [ТС]
Константы, насколько я понимаю из других языков, не могут изменять свое значения (и должны инициализироваться при объявлении). Но я что-то не нашел такого в примерах кода. Или как в С# выглядят константы (код)?
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
24.07.2011, 14:41
Цитата Сообщение от Nubik756 Посмотреть сообщение
Или как в С# выглядят константы (код)?
C#
1
2
            const string hiText = "Привет";
            const int digit = 9;
1
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
31.03.2019, 14:16
А кто нибудь может объяснить почему данное выражение работает?
C#
1
var number = 12345678901234567890U;
В книге Шилдта указано: "Если вас не устраивает тип литерала по умолчанию, его можно изменить с помощью суффикса". Суффикс U означает что литерал имеет тип uint. Как вышеперечисленное значение может быть типом uint, если оно превышает значение данного типа (От 0 до 4 294 967 295)?
Или это компилятор сам понимает что я допустил ошибку и uint превращает в ulong ?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
31.03.2019, 15:21
Цитата Сообщение от Enifan Посмотреть сообщение
Или это компилятор сам понимает что я допустил ошибку и uint превращает в ulong ?
Вы же сами указали компилятору, чтобы тип переменной number был им же определен в зависимости от значения справа от знака равенства.
Вот он и определил его как ulong.
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
31.03.2019, 15:43
Цитата Сообщение от kolorotur Посмотреть сообщение
тип переменной number был им же определен
Может я не правильно задал вопрос. Левый тип да - будет ulong. Вопрос в правом типе. Я явно указываю что это uint, а такое больше значение не может быть типом uint. Если было бы переполнение - тогда вопросов бы не было, но на выходе все равно получается это же большое значение.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
31.03.2019, 15:50
Цитата Сообщение от Enifan Посмотреть сообщение
Суффикс U означает что литерал имеет тип uint
это вы сами придумали.

компилятор подставит ulong в данном случае
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
31.03.2019, 16:00
Или вот другой пример
C#
1
byte number = 5;
Пытаюсь рассмотреть данный пример поэтапно:
1) литерал 5. Поскольку нет суффикса, то он имеет тип int.
2) оператор присваивания. Наибольший тип (int) записывается в наименьший (byte), но в данном случаи неявное преобразование типов не должно сработать, но операция присваивания происходит успешно.
Просто хочется понять, чем является литерал (правое выражение) до присваивания. Возникает ощущение что компилятор делает так:
C#
1
byte number = Convert.ToByte(100);
Добавлено через 5 минут
Цитата Сообщение от КОП Посмотреть сообщение
это вы сами придумали.
Дословная цитата из учебника Шилдта 2018 года. 3 глава, тема "Литералы", страница 80:
"Для указания целочисленного типа без знака к литералу присоединяется суффикс u или U. Следовательно, 100 - это литерал типа int, а 100U - это литерал типа uint".
От себя в цитате ничего не добавлял.
0
 Аватар для JustinTime
964 / 582 / 268
Регистрация: 20.12.2016
Сообщений: 1,506
31.03.2019, 16:04
Enifan,
Тип целочисленного литерала определяется следующим образом:
Если литерал не имеет суффикса, его тип — первый из этих типов, в которых может быть представлено его значение: int, uint, long, ulong.
Если литерал с суффиксом U или u, его тип — первый из этих типов, в которых может быть представлено его значение: uint, ulong.
Если литерал с суффиксом L или l, его тип — первый из этих типов, в которых может быть представлено его значение: long, ulong.
Если литерал с суффиксом UL, Ul, uL, ul, LU, Lu, lU, или lu, он имеет тип ulong.
https://docs.microsoft.com/ru-... r-literals
1
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
31.03.2019, 16:06
Цитата Сообщение от Enifan Посмотреть сообщение
100U - это литерал типа uint
про 100U верно, однако там НЕ делается обобщение и не говорится об 100000000000000000U которвый является uLong.

Согласен, формулировка в книге вводит в заблуждение.

ну и в таких вопросах всегда лучше ориентироваться на доки майков, чем книги
The suffix UL or ul unambiguously identifies a numeric literal as a ulong value. The L suffix denotes a ulong if the literal value exceeds Int64.MaxValue. And the U or u suffix denotes a ulong if the literal value exceeds UInt32.MaxValue.
1
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
31.03.2019, 16:20
Цитата Сообщение от Enifan Посмотреть сообщение
Наибольший тип (int) записывается в наименьший (byte), но в данном случаи неявное преобразование типов не должно сработать, но операция присваивания происходит успешно.
Сам задал вопрос, сам ответил docs.microsoft.com.
Мда-уж, казало бы простая тема, а столько нюансов. Не столько кодишь, сколько разбираешься. Удивительная наука программирования. Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2019, 16:20
Помогаю со студенческими работами здесь

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с серверами я ничего не понимаю! что...

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц. Например, имеется проводник в цепи, чем...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг с другом. Хотелось бы, чтобы кто-нибудь...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru