您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“C語言中的數組怎么創建和使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C語言中的數組怎么創建和使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
數組是一組相同類型的元素的集合。
type_t(數組類型) arr_name(數組名) [const_n](用來指定數組大小)
數組的初始化是在其定義的時候就應該執行的,如:為5個已經知道的整形數據進行排序
//正確 int Arr[5] = { 1, 2, 3, 4, 5 }; //而不能用下面這種方式 int Arr[5]; Arr[5] = { 1, 2, 3, 4, 5 };
因為對于 Arr[5] = 來說,這是一個賦值操作,將右值賦值給左值,一切常數、字符和字符串都是右值。在這里 { 1, 2, 3, 4, 5 }; 并不是右值的一種,所以這是錯誤的。
另一個錯誤是,Arr[5] 下標為 5 這個元素實際上并不存在的屬于數組的越界。
有數字類型的初始化,自然也有字符類型的初始化
字符類型初始化的兩種方式:
char arr[5]={'a','b','c','d','e'}; char arr[5]= "abcde ";
1.空字符是字符串的終止符(空字符本身不是字符串的一部分,所以字符串的長度并不包含空字符)
2.操作字符串時,必須保證字符串以空字符(\0)結尾(不以空字符結尾的字符序列,不是字符串)。
例
用單引號形式初始化的數組代表只有這些數據,并且在末端不包含\0
總結
數組是使用下標來訪問的,下標是從0開始。
數組的大小可以通過計算得到。
Int sz = sizeof(arr)/sizeof(arr[0])
當我們定義了長度為5的整型數組,操作系統就會為其分配連續的五個內存地址。
這些地址用來存放數據,每一個地址所占的字節是數組的數據類型所決定的。 如int類型的每一個地址占據著4個字節,double類型的8個。
因為每個整形大小為四個字節,所以如圖每個地址間隔為4。
講完了一維數組的知識點,讓我們簡單了解一下二維數組
第一個括號指定行,第二個括號指定列
可以只對部分元素賦值,未賦值的元素自動取“零”值。例如:
int arr[3][4]={1,2,3,4,5}
第一行:123 第二行:45
二維數組的列不能省略行可以在括號內大括號分割明確時省略
二維數組在內存中的存儲
如果定義一個這樣的二維數組int a[3][4]={undefined{1,3,5,7},{9,11,13,15},{17,19,21,23}};
則其在內存中的表示可能下面這樣的。
由上圖可以看出,在內存中二維數組是按照行主序進行存儲的,從內存的角度上看,二維數組本質就是一個一維數組。如果把二維數組的每一行看成一個整體,即看成一個數組中的一個元素,那么整個二維數組就是一個一維數組。而二維數組的名字代表二維數組第0行的首地址(注意它是代表一行元素的首地址,而不是第0行第0列元素的首地址,雖然是相等的,但不能這么理解,所以在沒有強制轉換的情況下,二維數據要么通過行指針進行參數傳遞,要么通過二維指針進行參數傳遞)。
這里講的數組長度存在一個界,而一旦超過了這個大小,就會發生一些未知的錯誤,也就是所謂的越界
這里用一個例子來說明下越界后數組內部的值的情況:
根據代碼可知,當數組越界后,其數值是不確定的。
讀到這里,這篇“C語言中的數組怎么創建和使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。