C語言不定長陣列及初始化方法- IT閱讀
文章推薦指數: 80 %
C語言不定長陣列及初始化方法 ... int arr[256] = {0};. int a[256]={0};並不是把a的所有元素初始化為0,int a[256]={1};也不是把a所有的元素初始化為1.
C語言不定長陣列及初始化方法
首頁
HTML
CSS
JavaScript
jQuery
Python3
Python2
Java
C
C++
Go
SQL
首頁
HTML
Search
C語言不定長陣列及初始化方法
軟體程式設計2018-07-19254
今天小編就為大家分享一篇C語言不定長陣列及初始化方法,具有很好的參考價值,希望對大家有所幫助。
一起跟隨小編過來看看吧
C語言不支援不定長陣列,要麼malloc,要麼在動態的指定它的長度
動態陣列不能初始化,可使用memset
1.int*p=(int*)malloc(num);
2.intnum=5;
arr[num];
若使用arr[],則需要在後面對齊進行初始化,來指定長度,否則編譯可以通過,但是預設只有一個單元,超過一個單元的長度,在後面程式的執行中有可能會被沖掉
intarr[]={0};//定義了一個單元的陣列,並不是不定長陣列
最好不用使用arr[]={0}來定義陣列,定義陣列之前應要指定長度
intarr[256]={0};
inta[256]={0};並不是把a的所有元素初始化為0,inta[256]={1};也不是把a所有的元素初始化為1.
陣列可以用一個列值來初始化,例如
intv1[]={1,2,3,4};
charv2[]={'a','b','c',0};
當陣列定義時沒有指定大小,當初始化採用列表初始化了,那麼陣列的大小由初始化時列表元素個數決定。
所以v1和v2分別為int[4]和char[4]型別。
如果明確指定了陣列大小,當在初始化時指定的元素個數超過這個大小就會產生錯誤。
例如:
charv3[2]={'a','b',0};//錯誤:太多的初始化值了
charv3[3]={'a','b',0};//正確
如果初始化時指定的的元素個數比陣列大小少,剩下的元素都回被初始化為0。
例如
intv5[8]={1,2,3,4};
等價於
intv5[8]={1,2,3,4,0,0,0,0};
注意沒有如下形式的陣列賦值:
voidf()
{
v4={'c','d',0};//錯誤:不是陣列賦值
}
顧名思義,集合(aggregate)就是多個事物聚集在一起,這個定義包括混合型別的集合:像struct和class等,陣列就是單一型別的集合。
初始化集合往往既冗長又容易出錯,而C++中集合初始化(aggregateinitialization)卻變得很方便而且很安全。
當產生一個集合物件時,要做的只是指定初始值就行了,然後初始化工作就由編譯器去承擔了。
這種指定可以用幾種不同的風格,它取決於正在處理的集合型別。
但不管是哪種情況,指定的初值都要用大括號括起來。
比如一個內部型別的陣列可以這樣定義:
inta[5]={1,2,3,4,5};
如果給出的初始化值多於陣列元素的個數,編譯器就會給出一條出錯資訊。
但如果給的初始化少於資料元素的個數,那將會怎麼樣呢?
例如:
intb[6]={0};
這時,編譯器會把第一個初始化值賦給陣列的第一個元素,然後用0賦給其餘的元素。
注意,如果定義了一個數組而沒有給出一列初始值時,編譯器並不會去做初始化工作。
所以上面的表示式是將一個數組初始化為零的簡潔方法。
以上這篇C語言不定長陣列及初始化方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援itread01.com。
相關文章
C實現不定長陣列的示例
C語言指標與陣列的詳解及區別
C語言結構體陣列詳解及示例程式碼
簡單分析C語言中指標陣列與陣列指標的區別
C語言中二維陣列指標的簡要說明
利用C語言編輯畫圖程式的實現方法(推薦)
利用C語言替換檔案中某一行的方法
C語言中結構體(struct)的幾種初始化方法
C語言求圓周率的簡單實現方法
使用C語言解決字串匹配問題的方法
用C語言操作MySQL資料庫的通用方法
iOS經驗之初始化方法中不該設定self.view的屬性淺析
PythonNumpy陣列的初始化和基本操作
php關聯陣列與索引陣列及其顯示方法
python字串str和位元組陣列相互轉化方法
分類導航
HTML/CSS
HTML教程
HTML5教程
CSS教程
CSS3教程
JavaScript
JavaScript教程
jQuery教程
Node.js教程
服務端
Python教程
Python3教程
Linux教程
Docker教程
Ruby教程
Java教程
JSP教程
C教程
C++教程
Perl教程
Go教程
PHP教程
正則表達式
資料庫
SQL教程
MySQL教程
PostgreSQL教程
SQLite教程
MongoDB教程
Redis教程
Memcached教程
行動端
IOS教程
Swift教程
Advertisement
三度辭典
Copyright©2016-2021IT閱讀
Itread01.comAllRightsReserved.
0.001291036605835
延伸文章資訊
- 1c語言中靜態陣列的定義和初始化 - w3c學習教程
c語言中靜態陣列的定義和初始化,陣列可以初始化,即在定義時,使它包含程式馬上能使用的值。 例如,下面的定義了一個全域性陣列,並用一組fibonacci數 ...
- 2c 初始化char C語言陣列初始化的三種方式 - w3c學習教程
c 初始化char C語言陣列初始化的三種方式,int arr1 3 使用的方式最簡潔,一般在定義的時候使用。 int arr2 3 for int i 0 i 3 i 使用for 迴.
- 3[C 語言] 程式設計教學:如何使用陣列(Array) | 開源技術教學網
要注意這時候陣列元素尚未初始化。陣列未初始化時所存的值視為垃圾值,其運算結果不可靠。 我們也可以在宣告陣列時一併賦值:. int arr[5] = {3, 4, 5, 6, 7};.
- 4陣列 - OpenHome.cc
也可以在宣告陣列時初始所有的陣列值,例如: int number[5] = {0, 1, 2, 3, 4}; double score[5] = {87.0, 78.0, 99.5, 69.5,...
- 5在C 語言中將陣列初始化為0 | D棧- Delft Stack
C Array. 創建時間: December-19, 2020. 使用C 的庫函式 memset(); C 中初始化陣列為 0 以外的值. 本教程介紹瞭如何在C 中將陣列初始化為0。 C 語言...