Casting
Casting dalam C
Casting digunakan untuk mengubah tipe data dalam ekspresi atau variabel.
Jenis Casting dalam C
Implicit Casting
Konversi otomatis yang dilakukan oleh compiler.
Explicit Casting
Konversi manual yang dilakukan oleh programmer menggunakan (tipe_data)
.
Contoh Pengunaan
1. Implicit Casting (Konversi Otomatis)
Compiler akan otomatis mengubah tipe data yang lebih kecil ke yang lebih besar untuk menghindari kehilangan data.
#include <stdio.h>
int main() {
int a = 10;
float b = a; // Implicit casting dari int ke float
printf("Nilai b: %.2f\n", b);
return 0;
}
Hasilnya:
Compiler secara otomatis mengubah int menjadi float.
2. Explicit Casting (Konversi Manual)
Jika kita ingin mengubah tipe data secara paksa, gunakan (tipe_data)
.
#include <stdio.h>
int main() {
float x = 5.7;
int y = (int) x; // Explicit casting dari float ke int
printf("Nilai y setelah casting: %d\n", y);
return 0;
}
Hasilnya:
Nilai y setelah casting: 5
(int) x
➜ Menghapus angka desimal dan hanya menyimpan bagian bulat.
3. Casting dengan Pointer
Menggunakan void *
untuk Generalisasi Pointer.
#include <stdio.h>
void printData(void *ptr, char type) {
if (type == 'i') {
printf("Nilai: %d\n", *(int*)ptr);
} else if (type == 'f') {
printf("Nilai: %.2f\n", *(float*)ptr);
}
}
int main() {
int a = 10;
float b = 3.14;
printData(&a, 'i');
printData(&b, 'f');
return 0;
}
Hasilnya:
Nilai: 10
Nilai: 3.14
void *
adalah pointer umum yang bisa menunjuk ke tipe data apa saja.Sebelum mengakses data, pointer harus dikonversi ke tipe data yang sesuai.
(int*)ptr
➜ Mengubahvoid *
menjadiint *
, lalu dereferensi dengan*ptr
.
Last updated