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

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

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