Memahami Variabel dalam C: Tipe, Aturan Penamaan, dan Manajemen Memori
Variabel tidak lain adalah nama yang diberikan ke area penyimpanan yang dapat dimanipulasi oleh program kita. Setiap variabel dalam C memiliki tipe spesifik, yang menentukan ukuran dan tata letak memori variabel; rentang nilai yang dapat disimpan dalam memori tersebut; dan himpunan operasi yang dapat diterapkan pada variabel.
Nama variabel dapat terdiri dari huruf, digit, dan karakter underscore. Harus dimulai dengan huruf atau underscore. Huruf besar dan kecil berbeda karena C peka huruf besar-kecil. Berdasarkan tipe dasar yang dijelaskan di bab sebelumnya, akan ada tipe variabel dasar berikut −
| Sr.No. | Tipe & Deskripsi |
| 1 | char Biasanya satu oktet (satu byte). Ini adalah tipe integer. |
| 2 | int Ukuran integer paling alami untuk mesin. |
| 3 | float Nilai floating point presisi tunggal. |
| 4 | double Nilai floating point presisi ganda. |
| 5 | void Mewakili ketiadaan tipe. |
Bahasa pemrograman C juga memungkinkan untuk mendefinisikan berbagai tipe variabel lain, yang akan kita bahas di bab-bab mendatang seperti Enumerasi, Pointer, Array, Struktur, Union, dll. Untuk bab ini, mari kita pelajari hanya tipe variabel dasar.
Definisi Variabel dalam C
Definisi variabel memberi tahu compiler di mana dan berapa banyak penyimpanan yang harus dibuat untuk variabel. Definisi variabel menentukan tipe data dan berisi daftar satu atau lebih variabel dengan tipe tersebut sebagai berikut −
type variable_list;
Di sini, type harus merupakan tipe data C yang valid termasuk char, w_char, int, float, double, bool, atau objek yang ditentukan pengguna lainnya; dan variable_list dapat terdiri dari satu atau lebih nama identifier yang dipisahkan dengan koma. Beberapa deklarasi yang valid ditunjukkan di sini −
int i, j, k; char c, ch; float f, salary; double d;
Baris int i, j, k; mendeklarasikan dan mendefinisikan variabel i, j, dan k; yang memberi instruksi kepada compiler untuk membuat variabel bernama i, j dan k dengan tipe int.
Variabel dapat diinisialisasi (diberikan nilai awal) dalam deklarasinya. Inisialisasi terdiri dari tanda sama dengan diikuti oleh ekspresi konstan sebagai berikut −
type variable_name = value;
Beberapa contoh adalah −
extern int d = 3, f = 5; // deklarasi d dan f. int d = 3, f = 5; // definisi dan inisialisasi d dan f. byte z = 22; // definisi dan menginisialisasi z. char x = 'x'; // variabel x memiliki nilai 'x'.
Untuk definisi tanpa inisialisasi: variabel dengan durasi penyimpanan statis secara implisit diinisialisasi dengan NULL (semua byte memiliki nilai 0); nilai awal semua variabel lainnya tidak terdefinisi.
Deklarasi Variabel dalam C
Deklarasi variabel memberikan jaminan kepada compiler bahwa ada variabel dengan tipe dan nama yang diberikan sehingga compiler dapat melanjutkan kompilasi lebih lanjut tanpa memerlukan detail lengkap tentang variabel. Definisi variabel memiliki maknanya hanya pada saat kompilasi, compiler memerlukan definisi variabel sebenarnya pada saat menautkan program.
Deklarasi variabel berguna saat Anda menggunakan beberapa file dan Anda mendefinisikan variabel Anda dalam salah satu file yang akan tersedia pada saat penautan program. Anda akan menggunakan kata kunci extern untuk mendeklarasikan variabel di mana saja. Meskipun Anda dapat mendeklarasikan variabel beberapa kali dalam program C Anda, ia hanya dapat didefinisikan sekali dalam sebuah file, fungsi, atau blok kode.
Contoh
Coba contoh berikut, di mana variabel dideklarasikan di atas, tetapi didefinisikan dan diinisialisasi di dalam fungsi main −
Live Demo
#include <stdio.h> // Deklarasi variabel: extern int a, b; extern int c; extern float f; int main () { /* definisi variabel: */ int a, b; int c; float f; /* inisialisasi sebenarnya */ a = 10; b = 20; c = a + b; printf("value of c : %d \n", c); f = 70.0/3.0; printf("value of f : %f \n", f); return 0; } Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −
value of c : 30 value of f : 23.333334
Konsep yang sama berlaku pada deklarasi fungsi tempat Anda memberikan nama fungsi pada saat deklarasinya dan definisi sebenarnya dapat diberikan di mana saja lainnya. Misalnya −
// deklarasi fungsi int func(); int main() { // pemanggilan fungsi int i = func(); } // definisi fungsi int func() { return 0; } Lvalues dan Rvalues dalam C
Ada dua jenis ekspresi dalam C −
lvalue − Ekspresi yang merujuk ke lokasi memori disebut ekspresi "lvalue". Lvalue dapat muncul sebagai sisi kiri atau kanan dari penugasan.
rvalue − Istilah rvalue merujuk pada nilai data yang disimpan di beberapa alamat memori. Rvalue adalah ekspresi yang tidak dapat diberi nilai yang ditetapkan yang berarti rvalue dapat muncul di sisi kanan tetapi tidak di sisi kiri dari penugasan.
Variabel adalah lvalue dan jadi dapat muncul di sisi kiri penugasan. Literal numerik adalah rvalue dan jadi tidak dapat ditugaskan dan tidak dapat muncul di sisi kiri. Lihat beberapa pernyataan yang valid dan tidak valid di bawah −
int g = 20; // pernyataan valid 1 10 = 20; // pernyataan tidak valid; akan menghasilkan error waktu kompilasi