|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.02.2012, 17:50 | #1 |
Форумчанин
Регистрация: 01.11.2011
Сообщений: 172
|
Необычный оператор присвания и результат
Всем привет! Ребята, подскажите по такому вопросу.
Есть такой код: int k=(1,010); cout << k; Выводится почему-то 8, не пойму почему. Если бы было бы int k=(1.010); вывелось бы 1, это мне понятно, что идет преобразование double к int. Заранее спасибо!
Желание тысяча возможностей, нежелание - тысяча причин
|
29.02.2012, 17:53 | #2 |
Пользователь
Регистрация: 28.02.2012
Сообщений: 23
|
Символ запятой нельзя использовать как разделитель целой и десятичной части цифры, это писанное правило. Как я понял - программа просто выдает своего рода ошибку.
|
29.02.2012, 17:58 | #3 |
Форумчанин
Регистрация: 01.11.2011
Сообщений: 172
|
Согласен полностью.НО!!!
Попробуйте следующий код. int x=(1.010); int y; y=1,010; cout<<x+y; Ответ будет 2
Желание тысяча возможностей, нежелание - тысяча причин
|
29.02.2012, 18:00 | #4 |
Форумчанин
Регистрация: 01.11.2011
Сообщений: 172
|
Или вот так:
int x=(1,010); int y; y=1,010; cout<<x+y; ответ 9 Бред какой-то
Желание тысяча возможностей, нежелание - тысяча причин
|
29.02.2012, 18:02 | #5 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Kamilius
ошибку выдал только ты 2Стремящийся в операторе "запятая" операнды вычисляются слева направо, итоговый результат - самый правый операнд. самый правый операнд у тебя константный числовой литерал 010. если литерал начинается с нуля, значит он задается в восьмеричной системе счисления, а oct(10) = dec(8). (т.к ты поставил скобки --> выполняется сначала оператор ,) и тебе уже сказали, не используй запятую для представления действительного числа. да и тип ты неверный указал Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 29.02.2012 в 18:07. |
29.02.2012, 18:03 | #6 |
Пользователь
Регистрация: 28.02.2012
Сообщений: 23
|
|
29.02.2012, 18:05 | #7 | |
Пользователь
Регистрация: 28.02.2012
Сообщений: 23
|
Прошу простить, я тоже только учусь И даже не знал о существовании оператора "запятая". И следующая часть:
Цитата:
|
|
29.02.2012, 18:05 | #8 |
Форумчанин
Регистрация: 01.11.2011
Сообщений: 172
|
А почему тогда в последнем варианте 9, а не 16, исходя из Ваших слов?
Желание тысяча возможностей, нежелание - тысяча причин
|
29.02.2012, 18:09 | #9 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Цитата:
1. x = 8, ибо стоят скобки. 2. y = 1, ибо скобок нет, а приоритет у операции присваивания выше, чем у оператора запятая.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
29.02.2012, 18:12 | #10 | |
Пользователь
Регистрация: 28.02.2012
Сообщений: 23
|
Цитата:
Код:
Последний раз редактировалось Kamilius; 29.02.2012 в 18:14. Причина: неверно написал значиние y |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль: необычный цикл | proser93 | Помощь студентам | 10 | 27.10.2011 20:28 |
необычный счетчик | grom333 | Помощь студентам | 4 | 26.05.2011 21:31 |
Необычный спам | mutabor | Свободное общение | 3 | 05.02.2010 23:44 |
Немного необычный поиск в TMemo | RIO | Общие вопросы Delphi | 8 | 30.07.2009 02:12 |
необычный ProgressBar | andrey4623 | Общие вопросы Delphi | 3 | 27.12.2007 19:25 |