Penggolongan menurut kelas penyimpanan berupa :
- variabel lokal/auto
- variabel eksternal/global
- variabel statis
- variabel register
Variabel Lokal
Variabel lokal yakni variabel yang dideklarasikan dalam sebuah fungsi. Karakteristik variabel lokal yakni :
- secara otomatis diciptakan ketika fungsi dipanggil dan akan sirna (lenyap) ketika sanksi terhadap fungsi berakhir.
- Hanya dikenal oleh fungsi daerah variabel tersebut dideklarasikan.
- Tidak ada inisialisasi secara otomatis (saat variabel diciptakan, nilainyatak menentu).
Dalam banyak literatur, variabel lokal disebut juga dengan variabel otomatis, sehingga sanggup dideklarasikan dengan menambahkan kata kuci auto di depan tipe data variabel.
Kata kunci ini bersifat opsional, biasanya disertakan sebagai penjelas saja.
#include <stdio.h> void fung_1(void); //deklarasi fungsi main(){ int i = 20; //variabel lokal fung_1(); printf("nilai i di dalam main() = %d\n", i); } void fung_1(void) { int i = 11; //variabel lokal printf("nilai i di dalam fung_1() = %d\n", i); }
![]() |
Nilai Keluaran Variabel i Berbeda |
Variabel Eksternal
Variabel eksternal merupakan variabel yang dideklarasikan di luar fungsi. Karakteristiknya adalah:
- dapat diakses oleh semua fungsi.
- kalau tak diberi nilai, secara otomatis diinisialisasi dengan nilai sama dengan nol.
variabel eksternal haruslah dideklarasikan sebelum definisi dari fungsi yang akan mempergunakannya.
Untuk memperjelas bahwa suatu variabel dalam fungsi merupakan variabel eksternal, di dalam fungsi yang menggunakannya sanggup mendeklarasikan variabel itu kembali dengan menambahkan kata kunci extern di depan tipe data variabel.
#include <stdio.h> int i; //deklarasi variabel eksternal void tambah(void); main(){ extern int i; //variabel eksternal printf("Nilai awal i = %d\n", i); i += 7; printf("Nilai i sekarang = %d\n", i); tambah(); printf("Nilai i sekarang = %d\n", i); tambah(); printf("Nilai i sekarang = %d\n", i); puts(""); } void tambah(void){ extern int i; //variabel eksternal i++; }
![]() |
Nilai Variabel Bertambah |
Kalau dalam suatu aktivitas terdapat suatu variabel eksternal, maka suatu fungsi (yang ada pada aktivitas yang sama) sanggup saja memakai nama variabel yang sama dengan variabel eksternal, namun diperlakukan sebagai variabel lokal. Untuk lebih jelasnya perhatikan pola aktivitas berikut ini.
#include <stdio.h> int i = 273; //deklarasi variabel eksternal void tambah(void); main(){ extern int i; //variabel eksternal printf("Nilai awal i = %d\n", i); i += 7; printf("Nilai i sekarang = %d\n", i); tambah(); printf("Nilai i sekarang = %d\n", i); tambah(); printf("Nilai i sekarang = %d\n", i); } void tambah(void){ int i = 10; //variabel lokal i++; printf("Nilai i dalam fungsi tambah() = %d\n", i); }
![]() |
Nilai i Pada Fungsi Tetap |
Variabel Statis
Variabel statis sanggup berupa variabel internal (didefinisikan di dalam fungsi) maupun variabel eksternal. Karakteristiknya yakni :
Variabel statis sanggup berupa variabel internal (didefinisikan di dalam fungsi) maupun variabel eksternal. Karakteristiknya yakni :
- Kalau variabel statis bersifat internal, maka variabel hanya dikenal oleh fungsi daerah variabel dideklarasikan
- Kalau variabel statis bersifat eksternal, maka variabel sanggup dipergunakan oleh semua fungsi yang terletak pada file yang sama, daerah variabel statis dideklarasikan
- Berbeda dengan variabel lokal, variabel statis tidak akan hilang sekeluarnya dari fungsi (nilai pada variabel akan tetap diingat).
- Inisialisasi akan dilakukan hanya sekali, yaitu ketika fungsi dipanggil yang pertama kali. Kalau tak ada inisialisasi oleh pemrogram secara otomatis akan diberi nilai awal nol
Variabel statis diperoleh dengan menambahkan kata kunci static di depan tipe data variabel.
#include <stdio.h> void fung_y(void); main(){ int y = 20; fung_y(); printf("Nilai y dalam main() = %d\n", y); fung_y(); printf("Nilai y dalam main() = %d\n", y); } void fung_y(void){ static int y; //variabel static, nilai tetap ketika keluar fungsi y++; printf("Nilai y dalam fung_y() = %d\n", y); }
![]() |
Nilai y Tetap Ketika Keluar Fungsi |
Variabel Register
Variabel register yakni variabel yang nilainya disimpan dalam register dan bukan dalam memori RAM. Variabel yang ibarat ini hanya sanggup diterapkan pada variabel yang lokal atau parameter formal, yang bertipe char atau int.
Variabel register biasa diterapkan pada variabel yang digunakan sebagai pengendali loop. Tujuannya untuk mempercepat proses dalam loop, alasannya yakni variabel yang dioperasikan pada register mempunyai kecepatan yang jauh lebih tinggi daripada variabel yang diletakkan pada RAM.
#include <stdio.h> main(){ register int i; int jumlah = 0; for(i = 1; i <= 1000000; i++) { jumlah = jumlah + i; } printf("1 + 2 + 3 + ... + 1000000 = %d\n", jumlah); }
![]() |
Proses Compile Lebih Cepat |
Demikian artikel tentang Penggolongan Variabel menurut Kelas Penyimpanan Bahasa C. Jika ada yang ditanyakan, silahkan bertanya di kolom komentar. Semoga bermanfaat :) Sumber https://wapwibowo.blogspot.com/