Panduan Ramah untuk Operator Lainnya dalam C

Hai teman-teman masa depan yang akan menjadi pemrogram! Hari ini, kita akan mengemban sebuah perjalanan yang menarik melalui dunia operator lainnya dalam C. Jangan khawatir jika Anda masih pemula dalam pemrograman – saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatunya secara langkah demi langkah. mari kita mulai!

C - Misc Operators

Operator sizeof dalam C

Bayangkan Anda sedang mengemas untuk perjalanan, dan Anda ingin mengetahui berapa banyak ruang yang ditempati oleh setiap item. Itu sebenarnya apa yang dilakukan operator sizeof dalam C – itu memberitahu kita ukuran hal-hal dalam program kita!

Operator sizeof mengembalikan ukuran (dalam byte) dari operand-nya. Berikut cara Anda dapat menggunakannya:

#include <stdio.h>

int main() {
int number = 42;
char letter = 'A';

printf("Ukuran int: %zu byte\n", sizeof(int));
printf("Ukuran char: %zu byte\n", sizeof(char));
printf("Ukuran variabel number: %zu byte\n", sizeof(number));
printf("Ukuran variabel letter: %zu byte\n", sizeof(letter));

return 0;
}

Ketika Anda menjalankan kode ini, Anda akan melihat sesuatu seperti ini:

Ukuran int: 4 byte
Ukuran char: 1 byte
Ukuran variabel number: 4 byte
Ukuran variabel letter: 1 byte

Seperti yang Anda lihat, sizeof dapat digunakan baik untuk jenis data maupun variabel. Itu sangat berguna ketika Anda perlu mengetahui secara tepat berapa banyak memori data Anda memakai!

Operator Alamat dalam C

Sekarang, mari bicarakan tentang operator alamat, yang diwakili oleh tanda ampersand (&). Bayangkan komputer Anda seperti sebuah gedung apartemen besar. Setiap apartemen (lokasi memori) memiliki alamatnya sendiri. Operator & membantu kita menemukan alamat-alamat ini!

Berikut contoh yang sederhana:

#include <stdio.h>

int main() {
int age = 25;
printf("Nilai age: %d\n", age);
printf("Alamat age: %p\n", (void*)&age);

return 0;
}

Ini akan mencetak sesuatu seperti ini:

Nilai age: 25
Alamat age: 0x7ffd5e7e9994

Alamat yang tepat akan berbeda di komputer Anda, tetapi Anda mendapat ide nya!

Operator Dereferensi dalam C

Jika operator alamat (&) tentang menemukan di mana sesuatu berada, operator dereferensi (*) tentang mengunjungi alamat itu dan melihat apa yang ada didalamnya. Itu seperti mengatakan, "Saya punya alamat ini, apa yang didalamnya?"

mari lihatnya dalam aksi:

#include <stdio.h>

int main() {
int cookies = 5;
int *p_cookies = &cookies;

printf("Nilai cookies: %d\n", cookies);
printf("Alamat cookies: %p\n", (void*)&cookies);
printf("Nilai p_cookies: %p\n", (void*)p_cookies);
printf("Nilai di *p_cookies: %d\n", *p_cookies);

return 0;
}

Output:

Nilai cookies: 5
Alamat cookies: 0x7ffd5e7e9994
Nilai p_cookies: 0x7ffd5e7e9994
Nilai di *p_cookies: 5

Lihat bagaimana *p_cookies memberikan nilai yang disimpan di alamat dipointer oleh p_cookies? Itu adalah dereferensi dalam aksi!

Operator Ternary dalam C

Operator ternary mirip dengan pernyataan if-else singkat. Itu sempurna untuk saat Anda ingin menugaskan nilai berdasarkan suatu kondisi. Berikut sintaksenya:

kondisi ? nilai_jika_benar : nilai_jika_salah

mari lihat contohnya:

#include <stdio.h>

int main() {
int age = 20;
char *status = (age >= 18) ? "dewasa" : "remaja";

printf("Pada umur %d, Anda adalah seorang %s.\n", age, status);

return 0;
}

Output:

Pada umur 20, Anda adalah seorang dewasa.

Apakah itu menarik? Itu seperti bertanya dan mendapatkan salah satu dari dua jawaban kemungkinan!

Operator Dot (.) dalam C

Operator titik digunakan untuk mengakses anggota suatu struktur. Bayangkan struktur seperti sebuah wadah yang dapat menahan beberapa item dengan jenis yang berbeda.

Berikut contohnya:

#include <stdio.h>

struct Person {
char name[50];
int age;
};

int main() {
struct Person john = {"John Doe", 30};

printf("Nama: %s\n", john.name);
printf("Umur: %d\n", john.age);

return 0;
}

Output:

Nama: John Doe
Umur: 30

Kita menggunakan operator titik untuk mengakses name dan age dari struktur Person.

Operator Indireksi dalam C

Operator indireksi sebenarnya sama seperti operator dereferensi (*) yang kita diskusikan sebelumnya. Itu disebut "indireksi" karena memungkinkan kita mengakses nilai secara tidak langsung melalui pointer.

Berikut contoh yang sedikit lebih kompleks:

#include <stdio.h>

int main() {
int x = 10;
int *p = &x;
int **pp = &p;

printf("Nilai x: %d\n", x);
printf("Nilai *p: %d\n", *p);
printf("Nilai **pp: %d\n", **pp);

return 0;
}

Output:

Nilai x: 10
Nilai *p: 10
Nilai **pp: 10

Di sini, kita menggunakan beberapa level indireksi. pp adalah pointer ke pointer!

Dan itu saja! Kita telah menutupi semua operator lainnya dalam C. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba operator ini dalam kode Anda sendiri. Selamat coding!

Operator Nama Contoh Deskripsi
sizeof Ukuran sizeof(int) Mengembalikan ukuran dalam byte dari jenis atau variabel
& Alamat-of &variable Mengembalikan alamat memori dari variabel
* Dereferensi *pointer Mengakses nilai di alamat yang disimpan dalam pointer
? : Ternary condition ? value1 : value2 Short-hand untuk pernyataan if-else
. Dot structure.member Mengakses anggota dari struktur
* Indireksi *pointer Mengakses nilai dipointer oleh pointer

Credits: Image by storyset