const與static有什麼區別

2021-04-14 05:52:07 字數 5558 閱讀 1530

1樓:匿名使用者

const 是常量修飾符

(1)在定義

變數的時候是沒有說明區別的;

例如:const int a; int const a;

但是定義此類變數時,一般放在前面!

(2)在定義改型別的指標時,就有三種定義方式,並且意義是不一樣的;

a.指向const物件的指標;例如:const double pi = 3.

這樣是可以的,但是不能通過

ptr來改變所指物件的值,比如給 *ptr = 2.3;這樣是不行的,

b.const指標;例如不能在指向其他物件了;

c.指向const物件的const指標,這樣定義出來的物件,一旦初始化,就不會在改變了;

static區域性變數:static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;

2樓:徐光豬

static是定義乙個靜態變數,存在於整個檔案,只有main退出了這個變數才會被系統釋放

const是定義乙個常量,既是將乙個變數變成常量程式例子

#include

using namespace std;

int f()

int t()

int main()

3樓:c_大白痴

對於c/c++語言來講,

const就是唯讀的意思,只在宣告中使用;

static一般有2個作用,規定作用域和儲存方式.對於區域性變數,static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;

對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.

static const 應該就是上面兩者的合集.

下面分別說明:

全域性:const,唯讀的全域性變數,其值不可修改.

static,規定此全域性變數只在當前模組(檔案)中可見.

static const,既是唯讀的,又是只在當前模組中可見的.

檔案:檔案指標可當作乙個變數來看,與上面所說類似.

函式:const,返回唯讀變數的函式.

static,規定此函式只在當前模組可見.

類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)

static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同

const與static的區別

4樓:匿名使用者

對於c/c++語言來講,

const就是唯讀的意思,只在宣告中使用;

static一般有2個作用,規定作用域和儲存方式.對於區域性變數,static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;

對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.

static const 應該就是上面兩者的合集.

下面分別說明:

全域性:const,唯讀的全域性變數,其值不可修改.

static,規定此全域性變數只在當前模組(檔案)中可見.

static const,既是唯讀的,又是只在當前模組中可見的.

檔案:檔案指標可當作乙個變數來看,與上面所說類似.

函式:const,返回唯讀變數的函式.

static,規定此函式只在當前模組可見.

類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)

static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同.

5樓:

const 是常量, 也就是唯讀的, 是乙個"右值"

比如 const int iret = 2 ;

iret = 3 ; // 這句是錯的, const型別只能在初始化的時候賦值, 之後不能改變

static稱為靜態變數, static有兩種, 一種是在類的成員變數中, 一種是區域性變數或全域性變數.

在類中的, 用**解釋

class exp ;

int main()

類中的static變數的意思是, 在這個類的所有例項中的值都是一樣的, 它與const不同, const 只是唯讀, 在其他方面與不帶const的變數沒什麼區別

還有一種是const全域性變數或區域性變數, 這兩種是相同的, 區域性變數的作用域會和全域性變數相同

上**:

static int i1 ;

int add(int a, int b)

void main()

還有幾點static的特點,(適用於static全域性變數或區域性變數)

1.static變數在全域性資料區分配記憶體, 也就是 在生成的可執行檔案中佔一定空間, 這點與全域性變數相同

2.static變數只在它所在的原始檔中可用. 如果乙個專案有很多 .

c或者.cpp檔案, static變數可以出現在每乙個檔案中, 而他們卻是不同的, static可以解決許多檔案中變數 名字相同的問題.

const和static const的區別

6樓:楓璽

const和static const的區別:

一、全域性的區別

const規定變數在全域性中是唯讀的變數,並且它的值無法被修改。

static const規定變數在當前的模組中是唯讀的變數,無法再全域性中被其他模組讀取。

二、檔案的區別

const定義的指標,不賦初值編譯時不報錯,在初始化時應說明指標的指向。

static const不能在定義物件時對變數初始化,就是不能用建構函式來初始化。

三、函式的區別

const只能通過建構函式初始化列表進行,並且必須有建構函式。

static const是靜態的,屬於類的靜態成員函式。

四、類的區別

const資料成員只在某個物件生存期內是常量,而對於整個類而言卻是可變的。因為類可以建立多個物件,不同的物件其const資料成員的值可以不同,所以不能在類宣告中初始化const資料成員。

static const初始化在類體外進行,初始化時不加該成員的訪問許可權控制符private,public等,並且初始化時使用作用域運算子來標明它所屬類,因此,靜態資料成員是類的成員,而不是物件的成員。

7樓:匿名使用者

對於c/c++語言來講,

const就是唯讀的意思,只在宣告中使用;

static一般有2個作用,規定作用域和儲存方式.對於區域性變數,static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;

對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.

static const 應該就是上面兩者的合集.

下面分別說明:

全域性:const,唯讀的全域性變數,其值不可修改.

static,規定此全域性變數只在當前模組(檔案)中可見.

static const,既是唯讀的,又是只在當前模組中可見的.

檔案:檔案指標可當作乙個變數來看,與上面所說類似.

函式:const,返回唯讀變數的函式.

static,規定此函式只在當前模組可見.

類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)

static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同.

8樓:

const 是常量, 也就是唯讀的, 是乙個"右值"

比如 const int iret = 2 ;

iret = 3 ; // 這句是錯的, const型別只能在初始化的時候賦值, 之後不能改變

static稱為靜態變數, static有兩種, 一種是在類的成員變數中, 一種是區域性變數或全域性變數.

在類中的, 用**解釋

class exp ;

int main()

類中的static變數的意思是, 在這個類的所有例項中的值都是一樣的, 它與const不同, const 只是唯讀, 在其他方面與不帶const的變數沒什麼區別

還有一種是const全域性變數或區域性變數, 這兩種是相同的, 區域性變數的作用域會和全域性變數相同

上**:

static int i1 ;

int add(int a, int b)

void main()

還有幾點static的特點,(適用於static全域性變數或區域性變數)

1.static變數在全域性資料區分配記憶體, 也就是 在生成的可執行檔案中佔一定空間, 這點與全域性變數相同

2.static變數只在它所在的原始檔中可用. 如果乙個專案有很多 .

c或者.cpp檔案, static變數可以出現在每乙個檔案中, 而他們卻是不同的, static可以解決許多檔案中變數 名字相同的問題.

9樓:高金山

沒有static const寫法的!

static作用:

1限制範圍(函式,變數只能在本檔案中使用)2設定變數儲存區域(靜態儲存區域)

const作用:

宣告常量,它不能被修改,它存放在常量區

10樓:

static為靜態修飾符,可以放在物件前面(函式也是一種物件)如:

class example

} 可直接example.show();去呼叫這個方法而不用例項化當然也可以定義靜態的屬性:

public static string str="hello";

但如果這樣example.str="helloworld";就出現問題了

也就是客戶端可以在任何地方去改變str的值。這樣的話極容易產生錯誤,因為str的值是依靠example類的,隨時可以改變。比如再宣告乙個類:

class class1 }

class example

} 要防止str值發生改變,就需要用到const修飾符public const string str="hello";//str被稱為常量

這是如果再對example.str賦值,則編譯器將產生錯誤用常量來儲存公共資料是最為合適的。

11樓:匿名使用者

const和static const的區別: 多了乙個static

static作用:1限制範圍(函式,變數只能在本檔案中使用)

2設定變數儲存區域(靜態儲存區域)

c語言中const有什麼用途,C語言中const有什麼用途

const修飾的資料型別是指常型別,常型別的變數或物件的值是不能被更新的。const關鍵字的作用主要有以下幾點 1 可以定義const常量,具有不可變性。例如 const int max 100 int array max 2 便於進行型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。例如 v...

請問vb中static是什麼意思

靜態變數的會一直存在到程式結束 跟單窗體的窗體級變數很像 我感覺這個回答很好.定義靜態變數,相對的用 dim 定義一般變數。如果是定義靜態變數的話,當事件結束後,變數的值依然是儲存了過程結束時的值。譬如 動態變數的話 private sub command1 click dim n as integ...

吩咐與囑咐有什麼異同,吩咐與囑咐有什麼異同

吩咐與囑咐都有對別人交代的意思。區別 一 具體指意不同 1 囑咐 囑咐是指前輩對晚輩交代的話。2 吩咐 吩咐是指上級對下級交代的話。二 側重不同 1 囑咐 側重於叮囑 告誡。2 吩咐 多指上級或長輩的口頭指派或命令。三 語氣不同 1 囑咐 不含強制命令的意思,語義較輕,多用於書面語。2 吩咐 通常帶...