亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言不定長數組及初始化方法

發布時間:2020-09-05 11:37:25 來源:腳本之家 閱讀:594 作者:wanghao19920907 欄目:編程語言

C語言不支持不定長數組,要么malloc,要么在動態的指定它的長度

動態數組不能初始化,可使用memset

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

2.int num = 5;

arr[num];

若使用arr[],則需要在后面對齊進行初始化,來指定長度,否則編譯可以通過,但是默認只有一個單元,超過一個單元的長度,在后面程序的運行中有可能會被沖掉

int arr[] = {0};//定義了一個單元的數組,并不是不定長數組

最好不用使用arr[] = {0}來定義數組,定義數組之前應要指定長度

int arr[256] = {0};

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

數組可以用一個列值來初始化,例如

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

當數組定義時沒有指定大小,當初始化采用列表初始化了,那么數組的大小由初始化時列表元素個數決定。所以v1和v2分別為 int[4] 和char[4]類型。如果明確指定了數組大小,當在初始化時指定的元素個數超過這個大小就會產生錯誤。例如:

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

如果初始化時指定的的元素個數比數組大小少,剩下的元素都回被初始化為 0。

例如

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

等價于

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

注意沒有如下形式的數組賦值:

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

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

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

比如一個內部類型的數組可以這樣定義:

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

如果給出的初始化值多于數組元素的個數,編譯器就會給出一條出錯信息。但如果給的初始化少于數據元素的個數,那將會怎么樣呢?

例如:

int b[6] = {0};

這時,編譯器會把第一個初始化值賦給數組的第一個元素,然后用0賦給其余的元素。注意,如果定義了一個數組而沒有給出一列初始值時,編譯器并不會去做初始化工作。所以上面的表達式是將一個數組初始化為零的簡潔方法。

以上這篇C語言不定長數組及初始化方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上犹县| 布拖县| 佛山市| 房山区| 延寿县| 德格县| 瑞昌市| 宝应县| 绥德县| 北辰区| 沭阳县| 湟源县| 蛟河市| 南康市| 雷波县| 额尔古纳市| 通州区| 固阳县| 满洲里市| 泰州市| 南城县| 宜宾市| 蓬溪县| 渝北区| 红原县| 长泰县| 尚志市| 彭水| 从江县| 柘城县| 伊金霍洛旗| 巴彦县| 河津市| 江安县| 克东县| 蓝山县| 平定县| 南雄市| 兴仁县| 且末县| 文水县|