C C 語言中的變數的4種儲存型別

2021-10-07 11:12:26 字數 1401 閱讀 5161

所有的資料都有兩種型別

(1)資料型別: : 如 int,float 等。

(2)儲存型別: : 總共有四種儲存型別的變數,分別為自動變數(auto)、靜態變數(static)、外部變數(extern)以及暫存器變數(register)。

1、o auto - - 函式中所有的非靜態區域性變數。

2、 register - - 一般經常被使用的的變數(如某一變數需要計算幾千次)可以設定成暫存器變數register 變數會被儲存在暫存器中,計算速度遠快於存在記憶體中的非 register 變數。

3、 static - - 在變數前加上 static 關鍵字的變數。

4、 extern - - 把全域性變數在其他原始檔中宣告成 extern 變數,可以擴充套件該全域性變數的作用域至宣告的那個檔案,其本質作用就是對全域性變數作用域的擴充套件。

主cpp原始檔(命名main)如下:

#include

#include

#include

#include

using namespace std;

extern

int extern_value;

static

int zeng_yong=24;

//全域性靜態變數

//int zeng_yong= 30;

//暫存器變數

void

register_demo()

printf

("&j:0x%p\n"

,&j)

;//c++ 的register 關鍵字已經優化,如果我們列印它的位址,它就變成了普通的auto變數。

printf

("register_demo - register_demo:%d\n"

, zeng_yong);}

//區域性靜態變數

void

static_demo()

//外部變數

void

extern_demo()

intmain

(void

)

次cpp原始檔(命名extern_demo)(必須新增否則會報錯)如下:

#include

int extern_value =

8888

;

變數的作用域和生存週期

注:「快」表示在定義函式裡的範圍。

C C 語言中的變數的4種儲存型別

用來指明變數的儲存位置,即執行該變數在哪一段分配記憶體空間,常見的儲存位置有auto extern register static,在一段執行程式中,可以為變數分配儲存空間的有bss bss段 bsssegment 通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文blocks...

C語言中變數的儲存型別

變數的儲存型別 storage class 是指儲存變數值的記憶體型別。有三個地方可以用於儲存變數 普通記憶體 執行時堆疊 硬體暫存器 用於宣告變數儲存型別的關鍵字 auto static register 在所有 塊之外的變數的預設儲存型別是靜態的 static 儲存於靜態記憶體中,稱為靜態 st...

C C 中變數的儲存型別

變數可能存放在三個位置 普通記憶體 靜態儲存區 程式執行堆疊 硬體暫存器。在函式體外定義的和在函式體內定義的並宣告為static型別的儲存在靜態儲存區中,在程式執行之前建立,在程式退出後銷毀。在函式體內定義的預設為 auto 自動變數,儲存在堆疊中,函式返回後,這些變數被銷毀。關鍵字register...