Latest web development tutorials

aturan lingkup C

Setiap jenis pemrograman, ruang lingkup didefinisikan di kawasan variabel program yang ada di luar wilayah variabel tidak dapat diakses. bahasa C, ada tiga tempat Anda dapat mendeklarasikan variabel:

  1. Dalam variabellokal dalam blok atau
  2. Semua variabelglobal di luar fungsi
  3. Fungsi parameter menentukanbentuk parameter

Mari kita lihat apa yang variabellokal, variabel globaldan parameterformal.

variabel lokal

Variabel dideklarasikan di dalam fungsi atau blok yang disebut variabel lokal. Mereka hanya dapat digunakan oleh fungsi atau blok kode dalam pernyataan itu. variabel lokal di luar fungsi tidak diketahui. Berikut ini adalah contoh penggunaan variabel lokal. Di sini, semua variabel a, b dan c adalah variabel lokal) Fungsi utama (.

#include <stdio.h>
 
int main ()
{
  /* 局部变量声明 */
  int a, b;
  int c;
 
  /* 实际初始化 */
  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 dalam fungsi eksternal, biasanya di bagian atas program. variabel global di seluruh siklus hidup aplikasi yang berlaku di fungsi internal dapat mengakses variabel global.

variabel global dapat diakses oleh fungsi apapun. Dengan kata lain, setelah deklarasi variabel global yang sudah tersedia di seluruh program. Berikut ini adalah penggunaan variabel contoh global dan lokal:

#include <stdio.h>
 
/* 全局变量声明 */
int g;
 
int main ()
{
  /* 局部变量声明 */
  int a, b;
 
  /* 实际初始化 */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("value of a = %d, b = %d and g = %d\n", a, b, g);
 
  return 0;
}

Dalam program ini, variabel lokal dan variabel global bisa sama, tetapi dalam fungsi, variabel lokal akan menimpa nilai dari variabel global. Berikut adalah contoh:

#include <stdio.h>
 
/* 全局变量声明 */
int g = 20;
 
int main ()
{
  /* 局部变量声明 */
  int g = 10;
 
  printf ("value of g = %d\n",  g);
 
  return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

value of g = 10

parameter formal

Fungsi parameter, parameter formal diperlakukan sebagai variabel lokal dalam fungsi, mereka akan memberikan prioritas untuk menimpa variabel global. Berikut adalah contoh:

#include <stdio.h>
 
/* 全局变量声明 */
int a = 20;
 
int main ()
{
  /* 在主函数中的局部变量声明 */
  int a = 10;
  int b = 20;
  int c = 0;
  int sum(int, int);

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);

  return 0;
}

/* 添加两个整数的函数 */
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;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil 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

Ketika sebuah variabel lokal didefinisikan, sistem tidak menginisialisasi, Anda harus menginisialisasi sendiri. Ketika anda mendefinisikan variabel global, sistem akan secara otomatis menginisialisasi sebagai berikut:

数据类型初始化默认值
int 0
char '\0'
float 0
double 0
pointer NULL

variabel dimulai dengan benar adalah praktek pemrograman yang baik, jika tidak program kadang-kadang menghasilkan hasil yang tak terduga karena variabel diinisiasi menyebabkan beberapa nilai sampah sudah tersedia di lokasi memori.