三.復(fù)合類型

C++中的復(fù)合類型主要有三種:數(shù)組,指針,和結(jié)構(gòu)

數(shù)組的索引是從0開始的,所以months[0]是指的數(shù)組months的第一個元素。最后一個元素的索引比數(shù)組的長度小1。

初始化數(shù)組的時候,提供的值可以少于數(shù)組的元素數(shù)目。如果只對數(shù)組的一部分進行初始化,則編譯器把其他元素設(shè)置為0。

sizeof運算符指出整個數(shù)組的的長度。而strlen()函數(shù)返回的是存儲在數(shù)組中的字符串的長度,而不是數(shù)組本身的長度。strlen()只計算可見的字符,并不把空字符計算在內(nèi)。

getline()函數(shù)讀取整行,它使用通過回車鍵輸入的換行符來確定輸入結(jié)尾。例如,假設(shè)要使用getline() 將姓名讀入到一個包含20個元素的name數(shù)組中,可以使用這樣的調(diào)用:cin.getline(name, 20);。

要使用string類,必須在程序中包含頭文件string。string類位于名稱空間std中,因為必須using namespace std或者std::string。

string對象可以用+將兩個字符串合并起來。

結(jié)構(gòu)是一種比數(shù)組更加靈活的數(shù)據(jù)格式,因為同一個結(jié)構(gòu)可以存儲多種類型的數(shù)據(jù)。首先,定義結(jié)構(gòu)描述,它描述并標記了能夠存儲在結(jié)構(gòu)中的各種數(shù)據(jù)類型。然后,按照描述創(chuàng)建結(jié)構(gòu)變量。比如:

struct inflatable

{

char name[20];

float volume;

double price;

}

關(guān)鍵字struct表明這是一個結(jié)構(gòu),inflatable是結(jié)構(gòu)的名稱。大括號中存儲的是結(jié)構(gòu)存儲的數(shù)據(jù)類型的列表,其中每個列表項都是一條生命語句,每一項都被稱為結(jié)構(gòu)成員。

在默認情況下,將整數(shù)值賦給枚舉量。第一個枚舉的值為0,第二個為1,以此類推。

可以使用賦值運算顯式的設(shè)置枚舉量的值:enum bits{one=1, two=2, four=4, eight=8}。指定的值必須是整數(shù)。又比如: enum bigstep{first, second=100, third}。這里,first默認為0,后面沒有被初始化的枚舉量的值將比其前面的枚舉量大1,因此third的值為101。

指針是一個變量,其存儲的是值的地址,而不是值本身。

在找尋常規(guī)變量的地址時,只需要對變量應(yīng)用地址尋址符&,就可以獲得它的位置。如果home是一個變量,&home就是它的地址。

*稱為間接值或解除引用運算符,將其應(yīng)用于指針,可以獲得該地址處所存儲的值。例如,manly是一個指針,則manly表示的是一個地址,而*manly表示的是存儲在該地址處的值。*manly與常規(guī)int變量等效。

對每個指針命名,都必須使用一個*。例如:int * p1,p2.這里p1是指針,而p2是一個int的變量。所以應(yīng)該這樣命名:int*p1,*p2.

在聲明語句中初始化指針。在這種情況下,初始化的是指針,而不是它指向的值。比如:int higgens=5; int * p1=&higgens; 這個例子里面是將&higgens的值給了p1,而不是*p1.

在C++中,創(chuàng)建動態(tài)數(shù)組很容易,只要將數(shù)組的元素類型和元素數(shù)目告訴new即可。必須在類型后面加上【】,其中包含元素的數(shù)目。例如,要創(chuàng)建一個包含10個int元素的數(shù)組,可以這樣做:int* psome=new int[10]; new運算符返回第一個元素的地址,該地址被賦給指針psome。

為數(shù)組分配內(nèi)存的通用格式如下: typename* pointername=new typename[n]。

如果給cout提供一個指針,它將打印指針的地址。但是如果指針的類型是char*,則cout將打印指針指向的字符串。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容