1樓:楓璽
const和static const的區別:
一、全域性的區別
const規定變數在全域性中是隻讀的變數,並且它的值無法被修改。
static const規定變數在當前的模組中是隻讀的變數,無法再全域性中被其他模組讀取。
二、檔案的區別
const定義的指標,不賦初值編譯時不報錯,在初始化時應說明指標的指向。
static const不能在定義物件時對變數初始化,就是不能用建構函式來初始化。
三、函式的區別
const只能通過建構函式初始化列表進行,並且必須有建構函式。
static const是靜態的,屬於類的靜態成員函式。
四、類的區別
const資料成員只在某個物件生存期內是常量,而對於整個類而言卻是可變的。因為類可以建立多個物件,不同的物件其const資料成員的值可以不同,所以不能在類宣告中初始化const資料成員。
static const初始化在類體外進行,初始化時不加該成員的訪問許可權控制符private,public等,並且初始化時使用作用域運算子來標明它所屬類,因此,靜態資料成員是類的成員,而不是物件的成員。
2樓:匿名使用者
對於c/c++語言來講,
const就是隻讀的意思,只在宣告中使用;
static一般有2個作用,規定作用域和儲存方式.對於區域性變數,static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;
對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.
static const 應該就是上面兩者的合集.
下面分別說明:
全域性:const,只讀的全域性變數,其值不可修改.
static,規定此全域性變數只在當前模組(檔案)中可見.
static const,既是隻讀的,又是隻在當前模組中可見的.
檔案:檔案指標可當作一個變數來看,與上面所說類似.
函式:const,返回只讀變數的函式.
static,規定此函式只在當前模組可見.
類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)
static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同.
3樓:
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可以解決許多檔案中變數 名字相同的問題.
4樓:高金山
沒有static const寫法的!
static作用:
1限制範圍(函式,變數只能在本檔案中使用)2設定變數儲存區域(靜態儲存區域)
const作用:
宣告常量,它不能被修改,它存放在常量區
5樓:
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賦值,則編譯器將產生錯誤用常量來儲存公共資料是最為合適的。
6樓:匿名使用者
const和static const的區別: 多了一個static
static作用:1限制範圍(函式,變數只能在本檔案中使用)
2設定變數儲存區域(靜態儲存區域)
7樓:匿名使用者
這種問題到書中找答案
static const和const static的區別
8樓:司馬刀劍
對於c/c++語言來講,
const就是隻讀的意思,只在宣告中使用;
static一般有2個作用,規定作用域和儲存方式.對於區域性變數,static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;
對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.
static const 應該就是上面兩者的合集.
下面分別說明:
全域性:const,只讀的全域性變數,其值不可修改.
static,規定此全域性變數只在當前模組(檔案)中可見.
static const,既是隻讀的,又是隻在當前模組中可見的.
檔案:檔案指標可當作一個變數來看,與上面所說類似.
函式:const,返回只讀變數的函式.
static,規定此函式只在當前模組可見.
類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)
static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同.
9樓:嶽愷歌象強
const是常量,也就是隻讀的,是一個"右值"
比如constintiret=2;
iret=3;//這句是錯的,const型別只能在初始化的時候賦值,之後不能改變
static稱為靜態變數,static有兩種,一種是在類的成員變數中,一種是區域性變數或全域性變數.
在類中的,用**解釋
clas***p;
intmain()
類中的static變數的意思是,在這個類的所有例項中的值都是一樣的,它與const不同,const只是只讀,在其他方面與不帶const的變數沒什麼區別
還有一種是const全域性變數或區域性變數,這兩種是相同的,區域性變數的作用域會和全域性變數相同
上**:
staticinti1;
intadd(inta,intb)
voidmain()
還有幾點static的特點,(適用於static全域性變數或區域性變數)
1.static變數在全域性資料區分配記憶體,也就是在生成的可執行檔案中佔一定空間,這點與全域性變數相同
2.static變數只在它所在的原始檔中可用.如果一個專案有很多.
c或者.cpp檔案,static變數可以出現在每一個檔案中,而他們卻是不同的,static可以解決許多檔案中變數名字相同的問題.
const和static的區別
10樓:匿名使用者
對於c/c++語言bai來講,
const就是隻讀的意思
du,只在宣告中使用zhi;
static一般有2個作用
dao,規定作用域和儲存方式版.對於區域性變數,static規定其為
權靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;
對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.
static const 應該就是上面兩者的合集.
下面分別說明:
全域性:const,只讀的全域性變數,其值不可修改.
static,規定此全域性變數只在當前模組(檔案)中可見.
static const,既是隻讀的,又是隻在當前模組中可見的.
檔案:檔案指標可當作一個變數來看,與上面所說類似.
函式:const,返回只讀變數的函式.
static,規定此函式只在當前模組可見.
類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)
static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同.
11樓:匿名使用者
對於c/c++語言來講,
const就是隻讀的意思,只在宣告中使用;
static一般有2個作用,規定作用域和版儲存方式.對於局權部變數,static規定其為靜態儲存方式,每次呼叫的初始值為上一次呼叫的值,呼叫結束後儲存空間不釋放;
對於全域性變數,如果以檔案劃分作用域的話,此變數只在當前檔案可見;對於static函式也是在當前模組內函式可見.
static const 應該就是上面兩者的合集.
下面分別說明:
全域性:const,只讀的全域性變數,其值不可修改.
static,規定此全域性變數只在當前模組(檔案)中可見.
static const,既是隻讀的,又是隻在當前模組中可見的.
檔案:檔案指標可當作一個變數來看,與上面所說類似.
函式:const,返回只讀變數的函式.
static,規定此函式只在當前模組可見.
類:const,一般不修飾類,(在vc6.0中試了一下,修飾類沒啥作用)
static,c++中似乎沒有靜態類這個說法,一般還是拿類當特殊的變數來看.c#中有靜態類的詳細說明,且用法與普通類大不相同.
const與static的區別是什麼?
12樓:
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符號常量,1,const 符號常量
1 前兩個含義一樣,叫做指標常量,含義是 p所指向的內容不能被修改。2 最後一個是常量指標,含義是 p 的值不能被修改,即它不能再指向其他地方。但是它所指向的內容是可以修改的。3 類似的還有一個 char const p。相信lz知道他的含義吧。對,它表示p和它所指向的內容都不能被修改。關於指標的問...
const和define相比,有什麼優點
const也可以全域性 const的相對define 很大一個優點在於 const的錯誤能在編譯的時候被編譯器發現 而對於define則只是做替換 沒有語法的檢查 補充一下 const定義的量具有具體的資料型別,而 define沒有 const 是靜態常量 define 是預編譯處理的定義,用處不只...
C 中的const的用法,c 中const是怎麼使用的?
個人的一些筆記,希望可以幫助你 const 的使用 const經常用來修飾一個值不能改變的量,安全,並且能消除儲存操作 const的幾種用法 1 說明值常量 2 說明指標 3 說明函式引數及其返回值 4 說明類的常量和成員函式 const 說明值常量 值常量的說明一般放在標頭檔案或者檔案的開始部分,...