Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 18:14   #11
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Hi, http://habrahabr.ru/blogs/crazydev/73963/=)
i++ -присваиваем значение и инкременируем
++i -инкрементируем и присваиваем

Узнал, что
i++ + ++i; компиллируеться.

Последний раз редактировалось Levsha100; 22.02.2010 в 18:18.
Levsha100 вне форума Ответить с цитированием
Старый 22.02.2010, 18:18   #12
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Levsha100
спасибо, кэп.

для тех, кто не понял, повторяю вопрос еще раз. почему x+++y КОМПИЛИРУЕТСЯ без ошибок, а x+++++y - ошибка КОМПИЛЯЦИИ? неужели я непонятно пишу или что.... зачем то дали определение постфикса и инфикса....

Цитата:
Узнал, что
i++ + ++i; компиллируеться.
во, уже кросавчег! в правильном направлении. осталось ответить, почему x+++++y; не компилируется
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; 22.02.2010 в 18:21.
pproger вне форума Ответить с цитированием
Старый 22.02.2010, 18:27   #13
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Не кипятись, это по ходу называется undefined behavior.
Levsha100 вне форума Ответить с цитированием
Старый 22.02.2010, 18:28   #14
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Цитата:
Сообщение от pproger Посмотреть сообщение
я непонятно пишу или что.... зачем то дали определение постфикса и инфикса....
Все вполне понятно написано, только не знаю, для кого... Что касается того, почему код не компилируется, думаю: компилятор не может понять, какой оператор используется... ИМХО.
vasek123 вне форума Ответить с цитированием
Старый 22.02.2010, 18:33   #15
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Levsha100
Цитата:
Не кипятись, это по ходу называется undefined behavior.
я спокоен как удав, поверь) нет, это не так называется

2vasek123
Цитата:
Все вполне понятно написано, только не знаю, для кого... Что касается того, почему код не компилируется, думаю: компилятор не может понять, какой оператор используется... ИМХО.
ну тогда напиши, как он интерпретирует это выражение, и почему считает ошибкой.

пс. от версии компилятора это не зависит, это стандарт
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 вне форума Ответить с цитированием
Старый 22.02.2010, 19:04   #16
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Провел небольшое исследование =))
Код:
#include <stdio.h>
int main(void)
{
    int x=0, y=0;

    //x+++y; //Случай 1
    //x+++++y; //Случай 2

    printf("%d, %d\n", x, y);
    return 0;
}
В первом случаи компилятор сначала проводит инкремент x, потом прибавляет к нему y, все нормально, все успешно компилируется, результат 1, 0. Т.е. получается (x++) + (y)
Во втором случаи компилятор опять же сначала проводит инкремент x, а следующий оператор воспринимает как еще один инкремент с не определенным lvalue, следовательно получается ошибка, т.е. (x++) (++) (+y)

Вроде все так
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 22.02.2010, 19:23   #17
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Blade
именно называется эта вещь принципом максимального куска (maximal munch strategy), который говорит о том, что если существует более одного варианта выбора, то компилятор предпочтет вариант с самой длинной последовательностью символов.

ну а с чего я это начал. хороший пример того, когда пробелы действительно важны (часто можно услышать, когда говорят, что пробелы нужны для удобочитаемости кода, однако в некоторых случаях они обязательны).

еще один пример из этой же области:
Код:
int* x;
int* y;
...
z = *x/*y;
Цитата:
Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его Blade.
к сожалению..
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 вне форума Ответить с цитированием
Старый 22.02.2010, 20:46   #18
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

i=i++ + ++i;
вот так - вполне компилируется. Просто пробел нужен.
i++ + ++i;
и так тоже.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 22.02.2010, 20:48   #19
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Ivan_32
мы вроде уже выяснили, почему так компилируется и почему нужен пробел) или я что-то недопонял?)
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 вне форума Ответить с цитированием
Старый 23.02.2010, 08:39   #20
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Сообщение

Я знаю такую фишку (она конечно известная, но все равно):
Код:
int a = 777;
int r = !!a;
r == 1
k1r1ch вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на заказ (требуется знание GPS и работы с эл.почтой) Magus Фриланс 4 20.01.2009 08:40