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

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

Войти
Регистрация
Восстановить пароль
 
PriZrаK
-116 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
#1

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

28.01.2014, 22:03. Просмотров 1074. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос литералы в С++ (C++):

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

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

Строковые литералы. Ошибки - C++
Почему в этой программе ошибки? Если префиксы u и U убрать, то программа все равно не компилируется wchar_t title = L"Chief Astrogator";...

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

К какому типу принадлежат указанные литералы? - C++
помогите с тестом. 5)Баллов: 1 К какому типу принадлежат следующие литералы 27L 3.6F 'z' 0x27 2u "char" к каждому литералу нужно соотнести...

Можно ли сравнивать строковые литералы? как правильно это сделать? - C++
надо сравнить введенный строковый литерал с одним из доступных. int main() { setlocale(0,""); char const s =15; char...

10
Frosten
3 / 3 / 5
Регистрация: 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
-116 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
29.01.2014, 00:42  [ТС] #3
Цитата Сообщение от Frosten Посмотреть сообщение
Usigned - это значит, что в переменной могут быть только положительные переменные, благодаря чему максимальное количество элементов будет выше чем у обычной переменной int. Обычно используется только для тех случаев, когда идет вычисление миллионов, факториалов и т.п.

Long - тоже увеличивает максимальное количество элементов, но только на 16 битных системах, на 32 битах разницы между лонг инт и просто инт нет.
Это я знаю, но так и не понял зачем писать так float A = 5.5F, ведь в А все равно хранится вещественное число
0
alsav22
5425 / 4820 / 442
Регистрация: 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
-116 / 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
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.01.2014, 01:03 #6
Цитата Сообщение от PriZrаK Посмотреть сообщение
почему L(long) впереди
Так придумали. Это же не числовая константа (как в теме), а символьная.
0
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
29.01.2014, 01:03 #7
Для вещественных чисел по умолчанию принят тип double, если не писать суффикс f, то числовой литерал имеет тип double, а сама константа - float.
0
PriZrаK
-116 / 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
5425 / 4820 / 442
Регистрация: 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
-116 / 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
5425 / 4820 / 442
Регистрация: 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
Привет! Вот еще темы с ответами:

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

литералы - C#
Что такое литерал? Это синоним переменной? Или констант? Если нет, то в чем отличие?

Целочисленные литералы - Java SE
Здравствуйте. Читаю книгу и не понятно в одном месте. Написано: целочисленные литералы создают значения типа int. Но можно...

Расчленяем строковые литералы - C (СИ)
char* str1 = &quot;abc&quot;; эквивалентен static char const __tmp_obj1 = &quot;abc&quot;;//константный указатель на массив char* str1 = &amp;__tmp_obj1; ...


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

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

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