Pembolehubah diklasifikasikan lagi kepada pembolehubah 'tempatan' dan 'global', yang merupakan topik utama perbincangan kami. Di sini perbezaan utama antara pembolehubah tempatan dan global ialah, pembolehubah tempatan diisytiharkan di dalam blok fungsi, di mana sebagai pemboleh ubah global dinyatakan di luar fungsi dalam program.
Mari kita mengkaji beberapa perbezaan antara pembolehubah tempatan dan global bersama dengan carta perbandingan.
Carta Perbandingan:
Asas untuk Perbandingan | Pembolehubah Tempatan | Pembolehubah Global |
---|---|---|
Perisytiharan | Pembolehubah diisytiharkan di dalam fungsi. | Pembolehubah diisytiharkan di luar sebarang fungsi. |
Skop | Dalam fungsi, di dalamnya ia diisytiharkan. | Sepanjang program ini. |
Akses | Diakses hanya dengan pernyataan, di dalam suatu fungsi di mana ia diisytiharkan. | Diakses oleh mana-mana pernyataan dalam keseluruhan program. |
Hidup | Dibuat apabila blok fungsi dimasukkan dan dimusnahkan semasa keluar. | Tetap wujud untuk sepanjang masa program anda sedang dilaksanakan. |
Penyimpanan | Pembolehubah tempatan disimpan di timbunan, kecuali dinyatakan. | Disimpan pada lokasi tetap yang ditentukan oleh pengkompil. |
Definisi Pembolehubah Tempatan
Pembolehubah tempatan sentiasa diisytiharkan di dalam blok fungsi. Dalam C, pembolehubah tempatan diisytiharkan pada permulaan blok kod. Dalam C ++, mereka boleh diisytiharkan di mana sahaja di blok kod sebelum penggunaannya. Pembolehubah setempat boleh diakses hanya dengan penyataan yang ditulis di dalam suatu fungsi di mana pembolehubah tempatan diisytiharkan. Mereka selamat dalam erti kata bahawa, mereka tidak dapat diakses oleh sebarang fungsi lain dari program yang sama.
Pembolehubah setempat wujud sehingga blok fungsi sedang dilaksanakan, dan dengan itu dimusnahkan selepas pelaksanaan keluar dari blok. Pembolehubah setempat kehilangan kandungan mereka sebaik sahaja pelaksanaan meninggalkan blok di mana mereka diisytiharkan.
Alasan di baliknya adalah bahawa pembolehubah setempat disimpan di timbunan kecuali storan khas mereka ditentukan. Tumpukan bersifat dinamik, dan perubahan dalam lokasi memori mengarah kepada sebab mengapa pemboleh ubah tempatan tidak memegang nilai mereka sebaik sahaja blok fungsi berfungsi.
Catatan:
Walau bagaimanapun, terdapat cara untuk mengekalkan nilai pembolehubah setempat, dengan menggunakan pengubah 'statik'.
Definisi Pembolehubah Global
Pembolehubah global diisytiharkan di luar semua fungsi yang terdapat di dalam program. Tidak seperti pembolehubah tempatan, pembolehubah global boleh diakses oleh sebarang fungsi yang ada dalam program. Pembolehubah global tidak banyak dipercayai kerana nilai mereka boleh diubah oleh sebarang fungsi yang ada dalam program ini.
Pembolehubah global kekal wujud sehingga seluruh program dapat dilaksanakan sepenuhnya. Pembolehubah global mengekalkan nilai mereka sehingga program sedang dilaksanakan. Alasannya adalah bahawa ia disimpan di kawasan kenangan tetap, yang ditentukan oleh pengkompil.
Pembolehubah global berguna dalam situasi di mana pelbagai fungsi mengakses data yang sama. Menggunakan sejumlah besar pembolehubah global mungkin bermasalah, kerana mungkin ada perubahan yang tidak diingini kepada nilai pembolehubah global.
Perbezaan Utama Antara Pembolehubah Tempatan dan Global.
- Pembolehubah Tempatan dipanggil 'setempat' kerana ia hanya diketahui oleh kenyataan yang ditulis dalam fungsi di dalamnya diisytiharkan dan tidak diketahui oleh fungsi lain yang ada di luar blok fungsi tersebut. Dalam kes pemboleh ubah global, mereka diketahui setiap dan semua fungsi hadir dalam program; Oleh itu, mereka dipanggil 'global'.
- Pembolehubah global mengekalkan nilai mereka sehingga program berada dalam fasa pelaksanaan, kerana ia disimpan di lokasi tetap yang ditentukan oleh pengkompil. Pembolehubah setempat disimpan di timbunan; Oleh itu, mereka tidak mengekalkan nilai mereka sebagai 'tumpukan' yang dinamik, tetapi pengkompil boleh diarahkan untuk mengekalkan nilai mereka, dengan menggunakan pengubah 'statik'.
- Sekiranya pembolehubah global dan tempatan dinyatakan dengan nama yang sama maka semua penyataan blok kod di mana pemboleh ubah tempatan diisytiharkan hanya merujuk kepada pembolehubah tempatan dan tidak akan memberi kesan kepada pembolehubah global.
- Pembolehubah tempatan dimusnahkan apabila kawalan program keluar dari blok di mana pemboleh ubah tempatan diisytiharkan. Walau bagaimanapun, pemboleh ubah global dimusnahkan apabila keseluruhan program ditamatkan.
Kesimpulan:
Pembolehubah tempatan dan global sama-sama diperlukan semasa menulis program. Tetapi, mengisytiharkan sebilangan besar pembolehubah global boleh menjadi masalah dalam program besar, kerana ia boleh menyebabkan perubahan yang tidak diingini kepada pemboleh ubah global; dan ia akan menjadi sukar untuk mengenal pasti mana bahagian program membuat perubahan itu. Oleh itu, seseorang harus mengelak daripada mengisytiharkan pembolehubah global yang tidak perlu.