C peraturan skop


Dalam sebarang jenis pengaturcaraan, skop ialah kawasan di mana pembolehubah yang ditakrifkan dalam program wujud tidak boleh diakses di luar kawasan ini. Terdapat tiga tempat dalam bahasa C di mana pembolehubah boleh diisytiharkan:

  1. Di dalam fungsi atau blokSetempatPembolehubah

  2. Dalam semua Pembolehubah global di luar fungsi

  3. dalam definisi parameter fungsi bagi bentuk parameter

mari kita lihat apakah pembolehubah setempat, pembolehubah global dan parameter formal.

Pembolehubah setempat

Pembolehubah yang diisytiharkan di dalam fungsi atau blok dipanggil pembolehubah tempatan. Ia hanya boleh digunakan oleh pernyataan di dalam fungsi atau blok kod. Pembolehubah tempatan tidak diketahui di luar fungsi. Berikut adalah contoh penggunaan pembolehubah tempatan. Di sini, semua pembolehubah a, b dan c adalah pembolehubah tempatan bagi fungsi main().

#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;}

Pembolehubah global

Pembolehubah global ditakrifkan di luar fungsi, biasanya di bahagian atas atur cara. Pembolehubah global adalah sah sepanjang kitaran hayat program dan boleh diakses dalam mana-mana fungsi.

Pembolehubah global boleh diakses oleh mana-mana fungsi. Dalam erti kata lain, pembolehubah global tersedia sepanjang program selepas ia diisytiharkan. Berikut ialah contoh penggunaan pembolehubah global dan pembolehubah tempatan:

#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 atur cara, nama pembolehubah tempatan dan pembolehubah global boleh sama, tetapi dalam fungsi, nilai pembolehubah tempatan akan mengatasi nilai pembolehubah global. Berikut ialah contoh:

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

Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut:

value of g = 10

Parameter formal

Parameter fungsi, parameter formal , Dianggap sebagai pembolehubah tempatan dalam fungsi, mereka akan mengatasi pembolehubah global terlebih dahulu. Berikut ialah 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;}

Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut:

value of a in main() = 10value of a in sum() = 10value of b in sum() = 20value of c in main() = 30

Memulakan pembolehubah tempatan dan pembolehubah global

Apabila pembolehubah tempatan Apabila ditakrifkan, sistem tidak akan memulakannya, anda mesti memulakannya sendiri. Apabila anda mentakrifkan pembolehubah global, sistem akan memulakannya secara automatik, seperti yang ditunjukkan di bawah:

数据类型初始化默认值
int0
char''
float0
double0
pointerNULL

Adalah satu tabiat pengaturcaraan yang baik untuk memulakan pembolehubah dengan betul, jika tidak, kadangkala atur cara mungkin menghasilkan hasil yang tidak dijangka kerana ia tidak Pembolehubah yang dimulakan menghasilkan beberapa nilai sampah yang sudah tersedia di lokasi memori.