+= -= /= eşitlik operatörleri
|= ^= %= eşitlik operatörleri
&= <<= >>= eşitlik operatörleri
Bu komutlar nerede ve ne amaçla kullanılır? Türkçe kaynaklarda biraz araştırdım bir cevap bulamadım.
a+=5;
demek a=a+5;
demektir. Diğerleri de aynı şekilde kullanılıyor.
Size tavsiyem kitaptan çalışın.
mesaj birleştirme:: 30 Ocak 2016, 22:07:24
Diğer yöntem ise, açın code:blocks'u işlemleri deneyerek anlamaya çalışın.
Bunlara
Compound Assignment Operators denir.
Eşittiri oradan alıp başa, ifadedeki ilk terimi de eşitliğin sol tarafına yazarsanız aynı şey olur.
i <<= 4
i = i << 4 gibi
Buradan (http://"https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Compound_assignment_operators") bakabilirsiniz.
#include <stdio.h>
#include <iostream>
int main()
{
int num1 = 0x55; // 0b01010101, 85
int num2 = 0xCC; // 0b11001100, 204
num1 += 2; // num1 = num1 + 2
std::cout << num1 << "\n"; // 87
num2 |= 0x55; // num2 = num2 | 0b01010101
std::cout << num2 << "\n"; // 01010101 0x55 ile
// 11001100 num2'yi OR'larsak
// 11011101, 0xDD, 221
int num3 = 0x0F; // 0b00001111, 15
num3 <<= 4; // num3 = num3 << 4
std::cout << num3 << "\n"; // 0xF0, 0b11110000, 240
}
Programın çıktısı koddaki yorumlarda belirttiğim şekilde aşağıdaki gibi olacaktır.
Alıntı Yap87
221
240
Amaç. kısa gösterim kullanıp hafızadan kazanmak mı?
Amaç zaman kazanmak ve okunabilirliği arttırmak.
x=x+1 ile x++ ya da x+=1'in bir farkı yok. Compiler çok kötüyse farklı olabilir ama tüm düzgün compiler'lar aynı assembly kodunu üretir bu 3 ifade için.