国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C語(yǔ)言不定長(zhǎng)數(shù)組及初始化方法

2020-05-23 13:29:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C語(yǔ)言不支持不定長(zhǎng)數(shù)組,要么malloc,要么在動(dòng)態(tài)的指定它的長(zhǎng)度

動(dòng)態(tài)數(shù)組不能初始化,可使用memset

1.int* p = (int*)malloc(num);

2.int num = 5;

arr[num];

若使用arr[],則需要在后面對(duì)齊進(jìn)行初始化,來(lái)指定長(zhǎng)度,否則編譯可以通過(guò),但是默認(rèn)只有一個(gè)單元,超過(guò)一個(gè)單元的長(zhǎng)度,在后面程序的運(yùn)行中有可能會(huì)被沖掉

int arr[] = {0};//定義了一個(gè)單元的數(shù)組,并不是不定長(zhǎng)數(shù)組

最好不用使用arr[] = {0}來(lái)定義數(shù)組,定義數(shù)組之前應(yīng)要指定長(zhǎng)度

int arr[256] = {0};

int a[256]={0};并不是把a(bǔ)的所有元素初始化為0,int a[256]={1};也不是把a(bǔ)所有的元素初始化為1.

數(shù)組可以用一個(gè)列值來(lái)初始化,例如

int v1[] ={1,2,3,4};char v2[]={'a','b','c',0};

當(dāng)數(shù)組定義時(shí)沒(méi)有指定大小,當(dāng)初始化采用列表初始化了,那么數(shù)組的大小由初始化時(shí)列表元素個(gè)數(shù)決定。所以v1和v2分別為 int[4] 和char[4]類型。如果明確指定了數(shù)組大小,當(dāng)在初始化時(shí)指定的元素個(gè)數(shù)超過(guò)這個(gè)大小就會(huì)產(chǎn)生錯(cuò)誤。例如:

char v3[2] ={'a','b',0}; //錯(cuò)誤:太多的初始化值了char v3[3] ={'a','b',0}; //正確

如果初始化時(shí)指定的的元素個(gè)數(shù)比數(shù)組大小少,剩下的元素都回被初始化為 0。

例如

int v5[8]={1,2,3,4};

等價(jià)于

int v5[8]={1,2,3,4,0,0,0,0};

注意沒(méi)有如下形式的數(shù)組賦值:

void f() { v4={'c','d',0}; //錯(cuò)誤:不是數(shù)組賦值}

顧名思義,集合(aggregate)就是多個(gè)事物聚集在一起,這個(gè)定義包括混合類型的集合:像struct和class等,數(shù)組就是單一類型的集合。

初始化集合往往既冗長(zhǎng)又容易出錯(cuò),而C++中集合初始化(aggregate initialization)卻變得很方便而且很安全。當(dāng)產(chǎn)生一個(gè)集合對(duì)象時(shí),要做的只是指定初始值就行了,然后初始化工作就由編譯器去承擔(dān)了。這種指定可以用幾種不同的風(fēng)格,它取決于正在處理的集合類型。但不管是哪種情況,指定的初值都要用大括號(hào)括起來(lái)。

比如一個(gè)內(nèi)部類型的數(shù)組可以這樣定義:

int a[5] = { 1, 2, 3, 4, 5 };

如果給出的初始化值多于數(shù)組元素的個(gè)數(shù),編譯器就會(huì)給出一條出錯(cuò)信息。但如果給的初始化少于數(shù)據(jù)元素的個(gè)數(shù),那將會(huì)怎么樣呢?

例如:

int b[6] = {0};

這時(shí),編譯器會(huì)把第一個(gè)初始化值賦給數(shù)組的第一個(gè)元素,然后用0賦給其余的元素。注意,如果定義了一個(gè)數(shù)組而沒(méi)有給出一列初始值時(shí),編譯器并不會(huì)去做初始化工作。所以上面的表達(dá)式是將一個(gè)數(shù)組初始化為零的簡(jiǎn)潔方法。

以上這篇C語(yǔ)言不定長(zhǎng)數(shù)組及初始化方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 舟曲县| 宣汉县| 兰西县| 荆门市| 嵊泗县| 门头沟区| 额敏县| 盐边县| 伊川县| 弋阳县| 于田县| 疏勒县| 皋兰县| 普兰县| 芦溪县| 象州县| 田阳县| 化州市| 博客| 宣威市| 南岸区| 三明市| 成安县| 龙里县| 芦溪县| 台南市| 年辖:市辖区| 宜君县| 冷水江市| 正定县| 南雄市| 乌鲁木齐市| 安阳市| 长寿区| 义马市| 景德镇市| 廉江市| 裕民县| 龙井市| 沾益县| 改则县|