Memahami Aturan Lingkup C: Variabel Lokal, Global, dan Formal
Sebuah lingkup dalam pemrograman adalah wilayah program tempat variabel yang didefinisikan dapat memiliki keberadaan dan di luar itu variabel tidak dapat diakses. Ada tiga tempat di mana variabel dapat dideklarasikan dalam bahasa pemrograman C −
Di dalam fungsi atau blok yang disebut variabel lokal.
Di luar semua fungsi yang disebut variabel global.
Dalam definisi parameter fungsi yang disebut parameter formal.
Mari kita pahami apa itu variabel lokal dan global, dan parameter formal.
Variabel Lokal
Variabel yang dideklarasikan di dalam fungsi atau blok disebut variabel lokal. Mereka hanya dapat digunakan oleh pernyataan yang berada di dalam fungsi atau blok kode tersebut. Variabel lokal tidak dikenal oleh fungsi di luar miliknya. Contoh berikut menunjukkan bagaimana variabel lokal digunakan. Di sini semua variabel a, b, dan c adalah lokal ke fungsi main().
Live Demo
#include <stdio.h> int main () { /* local variable declaration */ int a, b; int c; /* actual initialization */ a = 10; b = 20; c = a + b; printf ("value of a = %d, b = %d and c = %d\n", a, b, c); return 0; } Variabel Global
Variabel global didefinisikan di luar fungsi, biasanya di bagian atas program. Variabel global mempertahankan nilai mereka selama umur program Anda dan dapat diakses di dalam fungsi apa pun yang didefinisikan untuk program.
Sebuah variabel global dapat diakses oleh fungsi apa pun. Artinya, variabel global tersedia untuk digunakan di seluruh program setelah deklarasinya. Program berikut menunjukkan bagaimana variabel global digunakan dalam program.
Live Demo
#include <stdio.h> /* global variable declaration */ int g; int main () { /* local variable declaration */ int a, b; /* actual initialization */ a = 10; b = 20; g = a + b; printf ("value of a = %d, b = %d and g = %d\n", a, b, g); return 0; } Program dapat memiliki nama yang sama untuk variabel lokal dan global tetapi nilai variabel lokal di dalam fungsi akan mendapat prioritas. Berikut adalah contoh −
Live Demo
#include <stdio.h> /* global variable declaration */ int g = 20; int main () { /* local variable declaration */ int g = 10; printf ("value of g = %d\n", g); return 0; } Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −
value of g = 10
Formal Parameters
Formal parameters, diperlakukan sebagai variabel lokal dalam fungsi dan mendapat prioritas atas variabel global. Berikut adalah contoh −
Live Demo
#include <stdio.h> /* global variable declaration */ int a = 20; int main () { /* local variable declaration in main function */ int a = 10; int b = 20; int c = 0; printf ("value of a in main() = %d\n", a); c = sum( a, b); printf ("value of c in main() = %d\n", c); return 0; } /* function to add two integers */ int sum(int a, int b) { printf ("value of a in sum() = %d\n", a); printf ("value of b in sum() = %d\n", b); return a + b; } Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −
value of a in main() = 10 value of a in sum() = 10 value of b in sum() = 20 value of c in main() = 30
Menginisialisasi Variabel Lokal dan Global
Saat variabel lokal didefinisikan, tidak diinisialisasi oleh sistem, Anda harus menginisialisasinya sendiri. Variabel global diinisialisasi secara otomatis oleh sistem saat Anda mendefinisikannya sebagai berikut −
| Tipe Data | Nilai Default Awal |
| int | 0 |
| char | '\0' |
| float | 0 |
| double | 0 |
| pointer | NULL |
Merupakan praktik pemrograman yang baik untuk menginisialisasi variabel dengan benar, jika tidak program Anda mungkin menghasilkan hasil yang tidak diharapkan, karena variabel yang tidak diinisialisasi akan mengambil nilai sampah yang sudah ada di lokasi memori mereka.