Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
PriZrаK
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
1

литералы в С++

28.01.2014, 22:03. Просмотров 1474. Ответов 10
Метки нет (Все метки)

Никак не могу разобраться float A = 5.5F зачем это(5.5F) нужно, нет я понимаю что тип с плавающей точкой по умолчанию Double, но тут то зачем ведь переменная А воспринимается компилятором как float, помогите разобраться зачем нужны эти спецификаторы (UL - unsigned long, U - unsigned и прочие)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 22:03
Ответы с готовыми решениями:

Литералы
Добрый день! Уже весь инет перерыл в поисках необходимости понятия значения...

Пользовательские литералы
я тут почитал вот эту статейку, сначала чуть-чуть выпал в осадок, потом...

Строковые литералы. Ошибки
Почему в этой программе ошибки? Если префиксы u и U убрать, то программа все...

Строковые литералы, не пойму как реализовать
В произвольно взятом предложении вывести на экран все слова, начинающиеся на...

К какому типу принадлежат указанные литералы?
помогите с тестом. 5)Баллов: 1 К какому типу принадлежат следующие литералы 27L...

10
Frosten
3 / 3 / 6
Регистрация: 28.01.2014
Сообщений: 13
29.01.2014, 00:02 2
Цитата Сообщение от PriZrаK Посмотреть сообщение
помогите разобраться зачем нужны эти спецификаторы (UL - unsigned long, U - unsigned и прочие)
Usigned - это значит, что в переменной могут быть только положительные переменные, благодаря чему максимальное количество элементов будет выше чем у обычной переменной int. Обычно используется только для тех случаев, когда идет вычисление миллионов, факториалов и т.п.

Long - тоже увеличивает максимальное количество элементов, но только на 16 битных системах, на 32 битах разницы между лонг инт и просто инт нет.
0
PriZrаK
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
29.01.2014, 00:42  [ТС] 3
Цитата Сообщение от Frosten Посмотреть сообщение
Usigned - это значит, что в переменной могут быть только положительные переменные, благодаря чему максимальное количество элементов будет выше чем у обычной переменной int. Обычно используется только для тех случаев, когда идет вычисление миллионов, факториалов и т.п.

Long - тоже увеличивает максимальное количество элементов, но только на 16 битных системах, на 32 битах разницы между лонг инт и просто инт нет.
Это я знаю, но так и не понял зачем писать так float A = 5.5F, ведь в А все равно хранится вещественное число
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.01.2014, 00:54 4
Цитата Сообщение от PriZrаK Посмотреть сообщение
Это я знаю, но так и не понял зачем писать так float A = 5.5F, ведь в А все равно хранится вещественное число
5.5 тоже где-то хранится. Так оно хранится как double: 5.5, а так как float: 5.5F. Так будет присвоение без приведения типов: float A = 5.5F, а так с приведением double к float: float A = 5.5.
0
PriZrаK
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
29.01.2014, 00:58  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
5.5 тоже где-то хранится. Так оно хранится как double: 5.5, а так как float: 5.5F. Так будет присвоение без приведения типов: float A = 5.5F, а так с приведением double к float: float A = 5.5.
а если такой пример :
wchar_t wc;
wc = L'A';
почему L(long) впереди
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.01.2014, 01:03 6
Цитата Сообщение от PriZrаK Посмотреть сообщение
почему L(long) впереди
Так придумали. Это же не числовая константа (как в теме), а символьная.
0
vua72
417 / 417 / 166
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
29.01.2014, 01:03 7
Для вещественных чисел по умолчанию принят тип double, если не писать суффикс f, то числовой литерал имеет тип double, а сама константа - float.
0
PriZrаK
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
29.01.2014, 01:06  [ТС] 8
Цитата Сообщение от vua72 Посмотреть сообщение
Для вещественных чисел по умолчанию принят тип double, если не писать суффикс f, то числовой литерал имеет тип double, а сама константа - float.
а зачем это нужно если к примеру float A = 5.5 результатом будет все равно float так же как и float A = 5.5F
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.01.2014, 01:10 9
C++
1
2
cout << "5.5 = " << sizeof(5.5) << endl; 
cout << "5.5F = " << sizeof(5.5F) << endl;
0
PriZrаK
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
29.01.2014, 01:18  [ТС] 10
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
cout << "5.5 = " << sizeof(5.5) << endl; 
cout << "5.5F = " << sizeof(5.5F) << endl;
здесь вывод напрямую без присвоения, а если так то какая разница:
float A = 0.5;
cout << "A = 0.5 " << sizeof(A) << endl;
float B = 0.5F;
cout << "B = 0.5 " << sizeof(B) << endl;
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.01.2014, 01:20 11
Читаем:
Цитата Сообщение от alsav22 Посмотреть сообщение
5.5 тоже где-то хранится. Так оно хранится как double: 5.5, а так как float: 5.5F.
0
29.01.2014, 01:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 01:20

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

Можно ли сравнивать строковые литералы? как правильно это сделать?
надо сравнить введенный строковый литерал с одним из доступных. int main() {...

Символьные литералы, указатели и функция. Не могу понять, почему именно так
Доброго времени суток всем! :) Изучаю С++, всегда стараюсь добить до...


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

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

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