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

Вычислите результат следующего выражения - C++

Восстановить пароль Регистрация
 
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
22.01.2014, 21:13     Вычислите результат следующего выражения #1
Здравствуйте, помогите, пожалуйста, решить пару задачек. Не совсем понимаю - что именно надо делать в них.

Вычислите результат следующего выражения:
1) 40 && 23 || 23
2) 12 & 25-3


И в чем разница между :
int j=0; int i=++j;
и
int j=0; int i=j++;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 119
22.01.2014, 21:16     Вычислите результат следующего выражения #2
Цитата Сообщение от Blueeyer Посмотреть сообщение
int i=++j;
int i=j++;
такого я не видел.
но просто ++j работает быстрее чем j++
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 21:16     Вычислите результат следующего выражения #3
Цитата Сообщение от Blueeyer Посмотреть сообщение
И в чем разница между :
int j=0; int i=++j;
и
int j=0; int i=j++;
Постфиксная и префиксная форма инкремента и декремента.
здесь хорошо описано про постфикс и префикс
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.01.2014, 21:20     Вычислите результат следующего выражения #4
Цитата Сообщение от Blueeyer Посмотреть сообщение
Вычислите результат следующего выражения:
Пусть компьютер считает. Он железный.
C++
1
2
3
4
5
6
#include <iostream>
int main() {
    std::cout << "1) " << (40 && 23 || 23) << std::endl;
    std::cout << "2) " << (12 & 25-3 ) << std::endl;
    return 0;
}
http://ideone.com/N3SJ9c

++j; // Преинкремент, т.е значение сначала увеличивается, а потом используется.
j++; // Постинкремент. Значение сначала используется, а потом увеличивается.

C++
1
2
int j=0; int i=++j; // i == 1;
int j=0; int i=j++; // i == 0;
Добавлено через 1 минуту
Цитата Сообщение от petyahohlov Посмотреть сообщение
но просто ++j работает быстрее чем j++
Не болтайте ерундой. Если не знаете нюансов.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 21:24     Вычислите результат следующего выражения #5
Tulosba,
Цитата Сообщение от petyahohlov Посмотреть сообщение
но просто ++j работает быстрее чем j++
ну инкремент будет задействован быстрее
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
22.01.2014, 21:29  [ТС]     Вычислите результат следующего выражения #6
Благодарю!
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
22.01.2014, 21:30     Вычислите результат следующего выражения #7
Цитата Сообщение от Tulosba Посмотреть сообщение
Пусть компьютер считает. Он железный.
ага
совсем разучишь людей мыслить
Цитата Сообщение от Blueeyer Посмотреть сообщение
40 && 23 || 23
логические операции
все что не 0 считается в Си ИСТИНА TRUE
если 0 то ЛОЖЬ то FALSE
переводим
TRUE and TRUE or TRUE =TRUE(1)
Цитата Сообщение от Blueeyer Посмотреть сообщение
12 & 25-3
побитовые операции и арифметические
сначала вычитаем ( приоритет выше)
25-3=22
переводим в двоичный код
12=01100
22=10110
поразрядное "И"
01100
10110
-------
00100

00100=4
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2014, 21:40     Вычислите результат следующего выражения
Еще ссылки по теме:

Каков будет результат выполнения следующего кода C++
C++ Каков будет результат выполнения следующего кода?
Вычислите значение выражения C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
22.01.2014, 21:40     Вычислите результат следующего выражения #8
Цитата Сообщение от petyahohlov Посмотреть сообщение
++j работает быстрее чем j++
Основные отличия преинкремента от постинкремента
1) преинкремент сначала увеличивает значения на единицу, потом возвращает значение; постинкремент сначала возвращает значение, а потом увеличивает значение на единицу
2) постфиксная запись инкремента возвращает объект по значению, префиксная - по ссылке. При возвращении по значению может создаваться промежуточный объект. С итераторами необходимо использовать только вторую запись.

Цитата Сообщение от cooller_94 Посмотреть сообщение
ну инкремент будет задействован быстрее
свечку держали?
Современные оптимизаторы приводят преинкремент к постинкременту (все же отличия в дебаг версии есть), а уж в циклах, где надо посчитать от 0 до N и параметр является int - записи эти вообще идентично работают.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Не болтайте ерундой.
чем, простите, болтайте?

Yandex
Объявления
22.01.2014, 21:40     Вычислите результат следующего выражения
Ответ Создать тему
Опции темы

Текущее время: 09:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru