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

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

Войти
Регистрация
Восстановить пароль
 
kukhtikov
2 / 2 / 0
Регистрация: 16.12.2012
Сообщений: 97
#1

Операция присваивания - C++

07.05.2013, 00:07. Просмотров 437. Ответов 4
Метки нет (Все метки)

Чем отличается операция присваивания "/=" от "=" ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 00:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Операция присваивания (C++):

Операция присваивания (=) - C++
Добрый день, интересует вот что: правильно ли я считаю, что в int x = .0 + 1F + 4L; 1) Сперва все операнды сложения (по правую...

операция присваивания - C++
Столкнулся с глупой проблемой, может кто объяснить, как в таком случае делается присваивание и в чем у меня ошибка? int a=1, b=2, c=3,...

Атомарна ли операция присваивания в однопроцессорной машине? - C++
? :) Добавлено через 1 минуту судя по это - атомарна :) 18: int a = 5; 0117C760 C7 45 E8 05 00 00 00 mov dword...

Конструктор копирования и операция присваивания в классе - C++
Народ, вот есть такие объявления(motto - объект класса StringBad): StringBad ditto(motto); StringBad metoo = motto; StringBad...

Правильно сделана перегруженная операция присваивания? - C++
Проверьте, пожалуйста, эту часть. Программа неправильно работает и думаю ошибка в операторе присваивания // узел template<typename...

Что быстрее, операция присваивания или сравнения? - C++
Всем доброго времени суток, такой вод у меня дурацкий вопрос сидит в голове, "Что быстрее, операция присваивания или сравнения?". Вот...

4
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.05.2013, 00:11 #2
Это два разных оператора. Второй просто присваивает, а первый делит, потом присваивает:
C++
1
2
double a = 3;
a /= 3; // тоже самое что a = a / 3;
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.05.2013, 11:46 #3
Еще есть момент, что при использовании операторов "/=", "+=", "-=" и т.д. операнд вычисляется только 1 раз. На обычных переменных это не заметно, но в таком, например, коде очевидно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int& f( int& v )
{
    v *= 2;
    return v;
}
 
int main() {
 
   int i = 10;
   f(i) = f(i) + 42;
   cout << "i=" << i << endl;
    
   int j = 10;
   f(j) += 42;
   cout << "j=" << j << endl;    
 
   return 0;
}
https://ideone.com/BlrOGq

Поэтому в общем случае:
C++
1
a /= 3; // НЕ тоже самое что a = a / 3;
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.05.2013, 16:05 #4
Tulosba, ну, да, она ведь вызывается дважды) Кстати, вот что вижуалка выдала:
0
Миниатюры
Операция присваивания  
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.05.2013, 16:30 #5
BumerangSP, на счет результатов, тут дело в порядке вызовов функций (скорее всего зависит от реализации компилятора).
в ideone сначала вызывается для левой части https://ideone.com/bi1xso
в vs - для правой. Картинку не привожу, но можете сами убедиться.
0
07.05.2013, 16:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2013, 16:30
Привет! Вот еще темы с ответами:

Оператор присваивания - C++
Какая разница между оператором &quot;=&quot; и &quot;==&quot; Почему , например , в цикле нужно писать while(count==1) а не ...

Операции присваивания - C++
Как можно проиллюстрировать возможности операций присваивания на примере программы?

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

механизм присваивания в С++ - C++
Доброго времени суток всем. Объясните почему при присвоении создается копия присваиваемого объекта. Cat Frisky(1,2); Cat...


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

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

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