C語言變數


變數是記憶體位置的名稱。它用於儲存資料。其值可以更改,可以重複使用多次。

它是通過符號表示記憶體位置的方法,以便可以容易識別。

我們來看一下宣告一個變數的語法:

type variable_list;

宣告變數的例子如下:

int a;  
float b;  
char c;

這裡,abc是變數,它們分別對應:intfloatchar是資料型別。

我們還可以在宣告變數時提供值,如下所示:

int a=10,b=20; // 同時宣告兩個整數型別的變數,並為它們分別賦值
float f=20.8;  
char c='A';

定義變數的規則

  • 一個變數名稱可以有字母,數位和下劃線。
  • 變數名稱只能以字母和下劃線開頭,但是它不能以數位開始。
  • 變數名稱內不允許有空格。
  • 變數名稱不能是任何保留字或關鍵字,例如:intfloat

有效的變數名:

int a;  
int _ab;  
int a30;

無效的變數名:

int 2;  
int a b;  
int long;

C語言的變數型別

C語言中有很多變數型別:

  1. 區域性變數
  2. 全域性變數
  3. 靜態變數
  4. 自動變數
  5. 外部變數

1.區域性變數

在函式或塊中宣告的變數稱為區域性變數。它必須在塊的開始處宣告。

void function1(){  
    int x=10;//local variable  
}

在使用區域性變數之前必須要初始化它。

2.全域性變數

在函式或塊之外宣告的變數稱為全域性變數。任何函式都可以改變全域性變數的值。它可用於所有函式。它必須在塊的開始處宣告。

int value=20;// 全域性變數
void function1(){  
    int x=10;// 區域性變數
}

3.靜態變數

static關鍵字宣告的變數稱為靜態變數。它在多個函式呼叫之間保留其值。

void function1(){  
    int x = 10; // 區域性變數
    static int y = 10; // 靜態變數
    x = x + 1;  
    y = y + 1;  
    printf("%d,%d", x, y);  
}

如果多次呼叫此函式,區域性變數在每次函式呼叫列印相同的值,例如:11,11,11等等。 但靜態變數將列印每個函式呼叫中遞增的值。例如:11,12,13等。

4.自動變數

預設情況下,在塊內宣告的C語言中的所有變數都是自動變數。通過我們可以使用auto關鍵字顯式宣告自動變數。

void main(){  
    int x=10;//local variable (also automatic)  
    auto int y=20;//automatic variable  
}

5.外部變數

我們可以通過使用外部變數來共用多個C原始檔中的變數。 要宣告一個外部變數,需要使用extern關鍵字。

原始檔:myfile.h 程式碼如下 -

extern int x = 10; // 外部變數 (也可叫全域性變數)

原始檔:program1.c 程式碼如下 -

#include "myfile.h"  
#include <stdio.h>  
void printValue(){  
    printf("Global variable: %d", global_variable);  
}