C pembolehubah


Pembolehubah sebenarnya hanyalah nama kawasan storan yang boleh dikendalikan oleh program. Setiap pembolehubah dalam C mempunyai jenis tertentu Jenis menentukan saiz dan susun atur storan pembolehubah dalam julat ini boleh disimpan dalam memori, dan operator boleh digunakan pada pembolehubah.

Nama boleh ubah boleh terdiri daripada huruf, nombor dan aksara garis bawah. Ia mesti bermula dengan huruf atau garis bawah. Huruf besar dan huruf kecil adalah berbeza kerana C sensitif huruf besar. Berdasarkan jenis asas yang dijelaskan dalam bab sebelumnya, terdapat jenis pembolehubah asas berikut:

类型描述
char通常是一个八位字节(一个字节)。这是一个整数类型。
int对机器而言,整数的最自然的大小。
float单精度浮点值。
double双精度浮点值。
void表示类型的缺失。

Bahasa C juga membenarkan takrifan pelbagai jenis pembolehubah lain, seperti penghitungan, penunjuk, tatasusunan, struktur, kesatuan, dan lain-lain. Ini akan diterangkan dalam bab-bab berikutnya, kita akan menerangkan perkara asas terlebih dahulu Jenis boleh ubah.

Takrifan pembolehubah dalam C

Takrifan pembolehubah memberitahu pengkompil tempat untuk mencipta storan pembolehubah dan cara mencipta storan pembolehubah. Definisi pembolehubah menentukan jenis data dan mengandungi senarai satu atau lebih pembolehubah jenis itu, seperti berikut:

type variable_list;

Di sini, jenis mestilah jenis data C yang sah , boleh jadi char , w_char, int, float, double, bool atau sebarang objek yang ditentukan pengguna, variable_list boleh terdiri daripada satu atau lebih nama pengecam dan berbilang pengecam dipisahkan dengan koma. Beberapa pengisytiharan yang sah disenaraikan di bawah:

int    i, j, k;char   c, ch;float  f, salary;double d;

baris int i, j, k mengisytiharkan dan mentakrifkan pembolehubah i, j dan k, yang mengarahkan pengkompil untuk mencipta int Pembolehubah bernama i; , j, k.

Pembolehubah boleh dimulakan (dinyatakan dengan nilai awal) apabila diisytiharkan. Pemula terdiri daripada tanda sama diikuti dengan ungkapan malar, seperti yang ditunjukkan di bawah:

type variable_name = value;

Berikut ialah beberapa contoh:

extern int d = 3, f = 5;    // d 和 f 的声明, 这就是单纯的声明int d = 3, f = 5;           // 定义并初始化 d 和 fbyte z = 22;                // 定义并初始化 zchar x = 'x';               // 变量 x 的值为 'x'

Definisi tanpa permulaan: dengan pembolehubah tempoh storan statik akan dimulakan secara tersirat kepada NULL (nilai semua bait ialah 0), dan nilai awal semua pembolehubah lain tidak ditentukan.

Pengisytiharan Pembolehubah dalam C

Pengisytiharan pembolehubah memastikan pengkompil bahawa pembolehubah itu wujud dengan jenis dan nama yang ditentukan, supaya pengkompil boleh meneruskan tanpa mengetahui butiran penuh pembolehubah. Pengisytiharan pembolehubah hanya mempunyai makna pada masa penyusunan; pengkompil memerlukan pengisytiharan pembolehubah sebenar apabila program dipautkan.

Terdapat dua situasi untuk pengisytiharan pembolehubah:

  • 1. Contohnya: int a telah pun mencipta ruang storan apabila ia diisytiharkan.

  • 2. Satu lagi ialah tidak perlu mencipta ruang storan, dengan menggunakan kata kunci extern untuk mengisytiharkan nama pembolehubah tanpa mentakrifkannya. Contohnya: extern int a di mana pembolehubah a boleh ditakrifkan dalam fail lain.

  • Melainkan terdapat kata kunci luaran, kesemuanya ialah takrifan pembolehubah.

extern int i; //声明,不是定义int i; //声明,也是定义

Contoh

Cuba contoh berikut, di mana pembolehubah telah diisytiharkan dalam pengepala, tetapi ditakrifkan dan dimulakan dalam fungsi utama:

#include <stdio.h>// 变量声明extern int a, b;extern int c;extern float f;int main (){  /* 变量定义 */  int a, b;  int c;  float f; 
  /* 初始化 */
  a = 10;
  b = 20;
  
  c = a + b;
  printf("value of c : %d \n", c);

  f = 70.0/3.0;
  printf("value of f : %f \n", f); 
  return 0;}

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

value of c : 30value of f : 23.333334

Lvalues ​​​​dan Rvalues ​​​​dalam C

Terdapat dua jenis dalam C Jenis ungkapan:

  1. lvalue: Ungkapan yang menunjuk ke lokasi memori dipanggil ungkapan lvalue. Nilai l boleh muncul di sebelah kiri atau kanan nombor tugasan.

  2. Rvalue: Istilah rvalue merujuk kepada nilai berangka yang disimpan di beberapa alamat dalam ingatan. Nilai r ialah ungkapan yang tidak boleh diberikan, iaitu nilai r boleh muncul di sebelah kanan nombor tugasan, tetapi bukan di sebelah kiri.

Pembolehubah ialah lnilai, jadi ia boleh muncul di sebelah kiri nombor tugasan. Literal berangka ialah rnilai, jadi ia tidak boleh diberikan dan tidak boleh muncul di sebelah kiri nombor tugasan. Berikut adalah pernyataan yang sah:

int g = 20;

Tetapi yang berikut bukan pernyataan yang sah dan akan menghasilkan ralat masa kompilasi:

10 = 20;