1。C++提供了用關(guān)鍵字enum,struct,union和class建立用戶自定義數(shù)據(jù)類型。和c一樣,c++中的枚舉也用關(guān)鍵字enum聲明,但是,與c不同的是,c++聲明的枚舉是一種新的數(shù)據(jù)類型。
Ex·

enum Boolean {FALSE,TRUE};
struct Name
{
char first [10];
char last[10];
};
union Number
{
int i;
float j;
};
建立三種用戶自定義數(shù)據(jù)類型,這三種自定義類型的標(biāo)記名分別為Boolean,Name和Number。可以用這些標(biāo)記名聲明變量。
Ex.

Boolean done=FALSE;
Name student;
Number x;
2。如果C函數(shù)原型的圓括號(hào)中什么也沒有,編譯器就不檢查參數(shù)且不對(duì)參數(shù)個(gè)數(shù)和類型做任何假定,在調(diào)用該函數(shù)是,給函數(shù)傳遞任何參數(shù)編譯器都不會(huì)報(bào)錯(cuò)。
3。函數(shù)參數(shù)列表中用const限定符說明不能再函數(shù)中修改傳遞給函數(shù)的參數(shù)。const限定符還有一些其他用法。例如聲明常量指針:
int *const iPTR=&intger;
這條語句把iPtr聲明為指向一個(gè)整數(shù)的常量指針。iPtr所指向的值可以修改,但是不能把iPtr指向其他內(nèi)存單元。
const int *iPtr=&intger;
這條語句把iPtr聲明為指向整數(shù)常量的指針。iPtr所引用的值不能修改,但是可以吧iPtr指向其他內(nèi)存單元。
4。默認(rèn)參數(shù)必須是函數(shù)參數(shù)列表中的最右邊的參數(shù)。
5。單目運(yùn)算符(::)能夠使程序訪問與作用域內(nèi)局部變量同名的全部變量。
6。C++和C對(duì)函數(shù)名的處理方式不同,所以試圖把C代碼和C++代碼連接時(shí),在C中編譯的函數(shù)不能被
C++識(shí)別。要通知編譯器一個(gè)或多個(gè)已經(jīng)在C中編譯,像下面寫出其函數(shù)原型:
extern “C” 函數(shù)原型 //單個(gè)函數(shù)
extern “C”//多個(gè)函數(shù)
{
函數(shù)原型
}
這些聲明通知編譯器指定的函數(shù)不在C++中編譯,因此不對(duì)連接說明中列出的函數(shù)名編碼。這些函數(shù)能夠得到正確的連接。