標(biāo)識(shí)符是一個(gè)字符序列,用來標(biāo)識(shí)變量、函數(shù)、數(shù)據(jù)類型等。任何程序都離不開標(biāo)識(shí)符,也就是說,不可能有沒有標(biāo)識(shí)符的C++程序。在程序2-1中,include、void、main、int、i、cin、cout等都是標(biāo)識(shí)符。
標(biāo)識(shí)符可以由大寫字母、小寫字母、下劃線(_)和數(shù)字0~9組成,但必須是以大寫字母、小寫字母或下劃線(_)開頭。在C++語(yǔ)言程序中,大寫字母和小寫字母不能混用,比如Name和name就代表兩個(gè)不同的標(biāo)識(shí)符。在表2-1中,我們給出了幾個(gè)正確和不正確的標(biāo)識(shí)符實(shí)例。
表2-1:正確和不正確的標(biāo)識(shí)符實(shí)例
正確 不正確
smart 5smart(不能數(shù)字開頭)
_decision bomb?(有非法字符?)
key_board key.board(有非法字符.)
標(biāo)識(shí)符的命名規(guī)則:
1. 所有標(biāo)識(shí)符必須由一個(gè)字母(a~z或A~Z)或下劃線(_)開頭;
2. 標(biāo)識(shí)符的其它部分可以用字母、下劃線或數(shù)字(0~9)組成;
3. 大小寫字母表示不同意義, 即代表不同的標(biāo)識(shí)符,如前面的cout和Cout;
在定義標(biāo)識(shí)符時(shí),雖然語(yǔ)法上允許用下劃線開頭,但是,我們避免定義用下劃線開頭的標(biāo)識(shí)符,因?yàn)榫幾g器常常定義一些下劃線開頭的標(biāo)識(shí)符。
C++沒有限制一個(gè)標(biāo)識(shí)符中字符的個(gè)數(shù),但是,大多數(shù)的編譯器都會(huì)有限制。不過,我們?cè)诙x標(biāo)識(shí)符時(shí),通常并不用擔(dān)心標(biāo)識(shí)符中字符數(shù)會(huì)不會(huì)超過編譯器的限制,因?yàn)榫幾g器限制的數(shù)字很大(例如255)。
一個(gè)寫得好的程序,標(biāo)識(shí)符應(yīng)該盡量有意義。 比如表示年可以用year,表示長(zhǎng)度可以用length,表示累加和可以用sum等,這樣的標(biāo)識(shí)符本身就增加了程序的可讀性,使程序更加清晰易懂。
C++語(yǔ)言的標(biāo)識(shí)符經(jīng)常用在以下情況中:
1. 標(biāo)識(shí)對(duì)象或變量的名字
2. 類、結(jié)構(gòu)和聯(lián)合的成員
3. 函數(shù)或類的成員函數(shù)
4. 自定義類型名
5. 標(biāo)識(shí)宏的名字
6. 宏的參數(shù)
在C++中,有一些預(yù)定義的標(biāo)識(shí)符,稱之為關(guān)鍵字,也稱之為保留字。例如,程序2-1中的int、void都是關(guān)鍵字??梢姡P(guān)鍵字是一種特殊的標(biāo)識(shí)符。關(guān)鍵字具有特定的含義,不能對(duì)它們?cè)俣x。例如,int、void在C++中被預(yù)定義為特定的數(shù)據(jù)類型,我們不能把它們?cè)俣x為變量的標(biāo)識(shí)符。C++的關(guān)鍵字很多,不僅僅程序2-1中見到的int和void兩個(gè)。標(biāo)準(zhǔn) C++中預(yù)定義了63個(gè)關(guān)鍵字,參見表2-2。另外,還定義了11個(gè)運(yùn)算符關(guān)鍵字,它們是:and、and_eq、bitand、bitor、compl、not、not_eq、or、or_eq、xor ?、xor_eq。在我們后面要學(xué)習(xí)的內(nèi)容中,并沒有涉及到C++的所有關(guān)鍵字,但會(huì)逐步介紹最重要和最常用的一些關(guān)鍵字。
另外,有些標(biāo)識(shí)符雖然不是關(guān)鍵字,但C++語(yǔ)言總是以固定的形式用于專門的地方,也不能把它們當(dāng)作一般標(biāo)識(shí)符使用,以免造成混亂。這樣的標(biāo)識(shí)符有include、define等,我們?cè)诤竺娴膶W(xué)習(xí)中會(huì)逐漸遇到。
表2-2 C++關(guān)鍵字
asm default float operator static_cast union
auto delete for private struct unsigned
bool do friend protected switch using
break double goto public template virtual
case dynamic_cast if register this void
catch else inline reinterpret_cast throw volatile
char enum int return true wchar_t
class explicit long short try while
const export mutable signed typedef .
const_cast extern namespace sizeof typeid . .
Continue false new static typename .
標(biāo)識(shí)符可以由大寫字母、小寫字母、下劃線(_)和數(shù)字0~9組成,但必須是以大寫字母、小寫字母或下劃線(_)開頭。在C++語(yǔ)言程序中,大寫字母和小寫字母不能混用,比如Name和name就代表兩個(gè)不同的標(biāo)識(shí)符。在表2-1中,我們給出了幾個(gè)正確和不正確的標(biāo)識(shí)符實(shí)例。
表2-1:正確和不正確的標(biāo)識(shí)符實(shí)例
正確 不正確
smart 5smart(不能數(shù)字開頭)
_decision bomb?(有非法字符?)
key_board key.board(有非法字符.)
標(biāo)識(shí)符的命名規(guī)則:
1. 所有標(biāo)識(shí)符必須由一個(gè)字母(a~z或A~Z)或下劃線(_)開頭;
2. 標(biāo)識(shí)符的其它部分可以用字母、下劃線或數(shù)字(0~9)組成;
3. 大小寫字母表示不同意義, 即代表不同的標(biāo)識(shí)符,如前面的cout和Cout;
在定義標(biāo)識(shí)符時(shí),雖然語(yǔ)法上允許用下劃線開頭,但是,我們避免定義用下劃線開頭的標(biāo)識(shí)符,因?yàn)榫幾g器常常定義一些下劃線開頭的標(biāo)識(shí)符。
C++沒有限制一個(gè)標(biāo)識(shí)符中字符的個(gè)數(shù),但是,大多數(shù)的編譯器都會(huì)有限制。不過,我們?cè)诙x標(biāo)識(shí)符時(shí),通常并不用擔(dān)心標(biāo)識(shí)符中字符數(shù)會(huì)不會(huì)超過編譯器的限制,因?yàn)榫幾g器限制的數(shù)字很大(例如255)。
一個(gè)寫得好的程序,標(biāo)識(shí)符應(yīng)該盡量有意義。 比如表示年可以用year,表示長(zhǎng)度可以用length,表示累加和可以用sum等,這樣的標(biāo)識(shí)符本身就增加了程序的可讀性,使程序更加清晰易懂。
C++語(yǔ)言的標(biāo)識(shí)符經(jīng)常用在以下情況中:
1. 標(biāo)識(shí)對(duì)象或變量的名字
2. 類、結(jié)構(gòu)和聯(lián)合的成員
3. 函數(shù)或類的成員函數(shù)
4. 自定義類型名
5. 標(biāo)識(shí)宏的名字
6. 宏的參數(shù)
在C++中,有一些預(yù)定義的標(biāo)識(shí)符,稱之為關(guān)鍵字,也稱之為保留字。例如,程序2-1中的int、void都是關(guān)鍵字??梢姡P(guān)鍵字是一種特殊的標(biāo)識(shí)符。關(guān)鍵字具有特定的含義,不能對(duì)它們?cè)俣x。例如,int、void在C++中被預(yù)定義為特定的數(shù)據(jù)類型,我們不能把它們?cè)俣x為變量的標(biāo)識(shí)符。C++的關(guān)鍵字很多,不僅僅程序2-1中見到的int和void兩個(gè)。標(biāo)準(zhǔn) C++中預(yù)定義了63個(gè)關(guān)鍵字,參見表2-2。另外,還定義了11個(gè)運(yùn)算符關(guān)鍵字,它們是:and、and_eq、bitand、bitor、compl、not、not_eq、or、or_eq、xor ?、xor_eq。在我們后面要學(xué)習(xí)的內(nèi)容中,并沒有涉及到C++的所有關(guān)鍵字,但會(huì)逐步介紹最重要和最常用的一些關(guān)鍵字。
另外,有些標(biāo)識(shí)符雖然不是關(guān)鍵字,但C++語(yǔ)言總是以固定的形式用于專門的地方,也不能把它們當(dāng)作一般標(biāo)識(shí)符使用,以免造成混亂。這樣的標(biāo)識(shí)符有include、define等,我們?cè)诤竺娴膶W(xué)習(xí)中會(huì)逐漸遇到。
表2-2 C++關(guān)鍵字
asm default float operator static_cast union
auto delete for private struct unsigned
bool do friend protected switch using
break double goto public template virtual
case dynamic_cast if register this void
catch else inline reinterpret_cast throw volatile
char enum int return true wchar_t
class explicit long short try while
const export mutable signed typedef .
const_cast extern namespace sizeof typeid . .
Continue false new static typename .