Penerusi dalam C++: Portal ke Magik Pengaturcaraan

Hai sana, para ahli kod yang akan datang! Hari ini, kita akan melangkah ke dalam dunia menarik penggunaan operator dalam C++. Jangan bimbang jika anda belum pernah menulis baris kod sebelum ini - saya di sini untuk menghidangkan anda setiap langkah, seperti yang saya lakukan untuk banyak murid selama tahun-tahun pengajaran saya. Jadi, ambil papan sihir (papan kekunci) anda, dan mari kita mempergunakan beberapa mantra pengaturcaraan!

C++ Operators

Apa Itu Operator?

Sebelum kita mendalam, mari kita faham apa itu operator. Dalam C++, operator adalah simbol khas yang memberitahu komputer untuk melakukan manipulasi matematik atau logik tertentu. Anggaplah mereka sebagai kata sihir dalam buku mantra anda - setiap satu melakukan sesuatu yang unik!

Operator Aritmetik

Mari kita mulai dengan dasar - operator aritmetik. Mungkin ini sudah familiar kepada anda dari kelas matematik, tetapi sekarang kita akan menggunakannya untuk membuat komputer melakukan perhitungan bagi kita!

Berikut adalah jadual operator aritmetik dalam C++:

Operator Description Example
+ Penambahan a + b
- Pengurangan a - b
* Perkalian a * b
/ Pembahagian a / b
% Modulus (sisa) a % b
++ Inkrement a++ or ++a
-- Dekrement a-- or --a

Mari kita lihat mereka dalam aksi:

#include <iostream>
using namespace std;

int main() {
int a = 10, b = 3;

cout << "a + b = " << a + b << endl;  // Output: 13
cout << "a - b = " << a - b << endl;  // Output: 7
cout << "a * b = " << a * b << endl;  // Output: 30
cout << "a / b = " << a / b << endl;  // Output: 3
cout << "a % b = " << a % b << endl;  // Output: 1

cout << "a++ = " << a++ << endl;  // Output: 10
cout << "Now a = " << a << endl;  // Output: 11

cout << "++b = " << ++b << endl;  // Output: 4
cout << "Now b = " << b << endl;  // Output: 4

return 0;
}

Dalam contoh ini, kita melakukan pelbagai operasi aritmetik. Perhatikan bagaimana a++ mengeluarkan 10 tetapi kemudian a menjadi 11? Ini kerana a++ adalah inkrement postscript - ia menggunakan nilai, kemudian meningkatkannya. Sementara itu, ++b adalah inkrement prescript - ia meningkatkan nilai sebelum menggunakannya.

Operator Relational

Berikutnya, kita ada operator relational. Operator ini digunakan untuk membandingkan nilai dan mengembalikan true (1) atau false (0). Mereka seperti pengadil dalam duel sihir!

Berikut adalah jadual operator relational:

Operator Description Example
== Sama dengan a == b
!= Tidak sama dengan a != b
> Lebih besar daripada a > b
< Lebih kecil daripada a < b
>= Lebih besar atau sama dengan a >= b
<= Lebih kecil atau sama dengan a <= b

Mari kita lihat mereka dalam aksi:

#include <iostream>
using namespace std;

int main() {
int a = 10, b = 5;

cout << "a == b is " << (a == b) << endl;  // Output: 0 (false)
cout << "a != b is " << (a != b) << endl;  // Output: 1 (true)
cout << "a > b is " << (a > b) << endl;    // Output: 1 (true)
cout << "a < b is " << (a < b) << endl;    // Output: 0 (false)
cout << "a >= b is " << (a >= b) << endl;  // Output: 1 (true)
cout << "a <= b is " << (a <= b) << endl;  // Output: 0 (false)

return 0;
}

Dalam spell... saya maksudkan program, ini kita membandingkan a dan b menggunakan pelbagai operator relational. Ingat, dalam C++, true diwakili oleh 1 dan false oleh 0.

Operator Logik

Sekarang, mari kita menambah sedikit logik ke dalam sihir kita! Operator logik digunakan untuk menggabungkan pernyataan kondisional.

Berikut adalah jadual operator logik:

Operator Description Example
&& Logik AND a && b
|| Logik OR a || b
! Logik NOT !a

Mari kita buat mantra dengan ini:

#include <iostream>
using namespace std;

int main() {
bool a = true, b = false;

cout << "a && b is " << (a && b) << endl;   // Output: 0 (false)
cout << "a || b is " << (a || b) << endl;   // Output: 1 (true)
cout << "!a is " << (!a) << endl;           // Output: 0 (false)
cout << "!b is " << (!b) << endl;           // Output: 1 (true)

return 0;
}

Dalam mantra ini, kita menggunakan operator logik untuk menggabungkan atau menyangkal nilai boolean. && mengembalikan true hanya jika kedua operand adalah true, || mengembalikan true jika sekurang-kurangnya satu operand adalah true, dan ! menyangkal nilai boolean.

Operator Bitwise

Sekarang, kita memasuki realm sihir maju - operator bitwise. Operator ini bekerja pada bit个体 integer. Mereka seperti micro-spell dalam dunia pengaturcaraan!

Berikut adalah jadual operator bitwise:

Operator Description Example
& Bitwise AND a & b
| Bitwise OR a | b
^ Bitwise XOR a ^ b
~ Bitwise NOT ~a
<< Left shift a << n
>> Right shift a >> n

Mari kita lihat beberapa sihir bit:

#include <iostream>
using namespace std;

int main() {
unsigned int a = 60;  // 60 = 0011 1100 in binary
unsigned int b = 13;  // 13 = 0000 1101 in binary

cout << "a & b = " << (a & b) << endl;   // Output: 12 (0000 1100 in binary)
cout << "a | b = " << (a | b) << endl;   // Output: 61 (0011 1101 in binary)
cout << "a ^ b = " << (a ^ b) << endl;   // Output: 49 (0011 0001 in binary)
cout << "~a = " << (~a) << endl;         // Output: -61 (1100 0011 in binary)
cout << "a << 2 = " << (a << 2) << endl; // Output: 240 (1111 0000 in binary)
cout << "a >> 2 = " << (a >> 2) << endl; // Output: 15 (0000 1111 in binary)

return 0;
}

Mantra ini mungkin kelihatan agak kompleks, tetapi ia melakukan operasi pada bit个体 nilai kita. Misalnya, & melakukan operasi AND pada setiap pasangan bit, | melakukan OR, dan seterusnya. Operasi geser << dan >> memindahkan semua bit ke kiri atau ke kanan oleh jumlah posisi yang ditentukan.

Operator Penugasan

Operator penugasan digunakan untuk memberikan nilai kepada variabel. Mereka seperti kuil yang menulis dalam buku sihir anda!

Berikut adalah jadual operator penugasan:

Operator Description Example
= Penugasan mudah a = b
+= Tambah dan tunjukkan a += b
-= Kurangkan dan tunjukkan a -= b
*= Kalikan dan tunjukkan a *= b
/= Bahagikan dan tunjukkan a /= b
%= Modulus dan tunjukkan a %= b
<<= Geser kiri dan tunjukkan a <<= b
>>= Geser kanan dan tunjukkan a >>= b
&= Bitwise AND dan tunjukkan a &= b
^= Bitwise XOR dan tunjukkan a ^= b
|= Bitwise OR dan tunjukkan a |= b

Mari kita tulis nilai dalam buku sihir kita:

#include <iostream>
using namespace cout;

int main() {
int a = 10;

cout << "Initial value of a: " << a << endl;

a += 5;  // Equivalent to: a = a + 5
cout << "After a += 5: " << a << endl;

a -= 3;  // Equivalent to: a = a - 3
cout << "After a -= 3: " << a << endl;

a *= 2;  // Equivalent to: a = a * 2
cout << "After a *= 2: " << a << endl;

a /= 4;  // Equivalent to: a = a / 4
cout << "After a /= 4: " << a << endl;

a %= 3;  // Equivalent to: a = a % 3
cout << "After a %= 3: " << a << endl;

return 0;
}

Dalam naskah ini, kita menggunakan pelbagai operator penugasan untuk mengubah nilai a. Operator ini menggabungkan penugasan dengan operasi lain, menjadikan kod kita lebih ringkas.

Operator Lain

C++ juga mempunyai beberapa operator lain yang tidak masuk ke dalam kategori lain. Mereka seperti kad wild card dalam deck sihir kita!

Berikut adalah jadual operator pelbagai:

Operator Description Example
sizeof Mengembalikan saiz variabel sizeof(a)
?: Operator ternary condition ? expr1 : expr2
& Mengembalikan alamat variabel &a
* Penunjuk kepada variabel *ptr
. Mengakses ahli struct variabel atau objek kelas object.member
-> Mengakses ahli struct atau kelas melalui pointer ptr->member

Mari kita lihat beberapa di antaranya dalam aksi:

#include <iostream>
using namespace cout;

int main() {
int a = 10;
int* ptr = &a;

cout << "Size of int: " << sizeof(int) << " bytes" << endl;
cout << "Value of a: " << a << endl;
cout << "Address of a: " << &a << endl;
cout << "Value pointed by ptr: " << *ptr << endl;

int b = (a > 5) ? 1 : 0;
cout << "b = " << b << endl;

return 0;
}

Dalam naskah ini, kita menggunakan sizeof untuk mendapatkan saiz int, & untuk mendapatkan alamat a, * untuk mendereferensikan pointer, dan operator ternary ?: sebagai penyuapan untuk if-else.

Kedudukan Operator dalam C++

Seperti dalam matematik, operator dalam C++ mempunyai tingkatan kedudukan. Ini menentukan urutan di mana operasi dilakukan dalam ekspresi. Ia seperti peraturan pertarungan sihir - beberapa mantra mempunyai kedudukan yang lebih tinggi daripada yang lain!

Berikut adalah jadual ringkas kedudukan operator (dari tertinggi ke terendah):

Precedence Operator
1 ::
2 () [] -> . ++ --
3 ! ~ ++ -- + - * & (type) sizeof
4 * / %
5 + -
6 << >>
7 < <= > >=
8 == !=
9 &
10 ^
11 |
12 &&
13 ||
14 ?:
15 = += -= *= /= %= >>= <<= &= ^= |=
16 ,

Ingat, anda boleh menggunakan tanda kurung untuk meng.Override kedudukan default dan menentukan urutan operasi secara jelas.

Danbegitu saja, para ahli sihir muda! Anda telah menyelesaikan pelajaran pertama anda dalam sihir operator C++. Ingat, latihan membuat sempurna, jadi teruskan untuk mempraktikkan sihir ini sampai mereka menjadi kebiasaan. Sebelum anda tahu, anda akan dapat membuat program kompleks dengan mudah. Selamat berkod, dan semoga kesalahan kompilasi anda sedikit dan jauh!

Credits: Image by storyset