C語音基礎 陣列12

2021-08-01 13:55:47 字數 2595 閱讀 4069

陣列是相同資料型別的元素按一定順序排列的集合

1.陣列可以儲存多個資料

2.陣列中的元素的型別都是相同的,在陣列建立的時候指定。

3.陣列元素個數是一定的,在建立的時候指定。

在建立陣列的時候需要確定亮點:元素型別和元素個數。

基本概念:

1).元素:陣列中的每乙個小空間,就叫做陣列的元素.

2).下標/索引:為了區分陣列中的每乙個元素.c系統就為每1個元素編了1個號碼.

這個號碼從0開始,依次的遞增.

這個號碼就叫做這個元素的下標.

3).長度:指的是陣列中元素的個數.也就是這個陣列做多可以儲存多少個資料.

arr[0] = 50;

陣列的初始化

1).最傻的方式.先宣告陣列,然後再使用下標逐個賦值.

int arr[3];

arr[0] = 10;

arr[1] = 20;

arr[2] = 30;

2).在宣告陣列的同時就初始化陣列的元素.

int arr[3] = ;

將陣列的每1個元素的值依次的寫在後面的大括弧之中.

int arr[3] = ;

在編譯器編譯的時候.是將這個**換成了上面那種傻**.

int arr[3];

arr[0] = 10;

arr[1] = 20;

arr[2] = 30;

3). 在使用第二種方式初始化的時候,可以省略陣列的長度

int arr = ;

4).第四種初始化方式.只為陣列的前面的元素賦值.

int arr[3] = ;

這個時候,陣列的第0個元素的值是10其他的元素的值被自動初始化為0.

所以,如果我們要講1個陣列中的所有的元素初始化為0

5).第五種初始化方式.指定下標的初始化.

int arr[3] = ;

其他的元素的值就自動的初始化為0.

陣列中資料的訪問

如果要取出陣列中元素的值.那麼就必須要確定到底要取那1個.

通過下標來確定.下標不能越界,因為越界取出的值就是別人的值

元素賦值注意事項

1).為元素賦值的時候.賦值的資料的型別要和元素的型別一致.

當賦值的資料的型別和元素的型別不一致的時候.會做自動型別轉換.

2). 下標不能越界

元素的本質,其實就是1個普通型別的變數.所以我們為陣列的元素賦值.其實也就是為1個普通型別的變數賦值.

陣列之所以可以儲存多個資料是因為陣列中有多個元素.

資料是儲存在元素中.而元素就是1個普通變數.

所以我們元素重複賦值的時候,新值乾掉舊值的.

儲存資料的是陣列的元素,不是陣列。

int arr[3];

1). 宣告1個陣列,

在記憶體中從高位元組向低位元組申請連續的(陣列的長度*每1個元素的位元組數)個位元組的空間.

2).下標為小的的元素在低位元組.

3).元素的值儲存的是資料的二進位制的補碼.

4).陣列的元素的本質就是1個普通型別的變數.

1個陣列就是由多個普通型別的變數聯合而成的.

每1個元素就是1個普通變數.所以沒1個元素也有自己的位址.

1).陣列的位址是陣列中最低位元組的位址.

2).陣列的位址是陣列中下標為0的元素的位址.

3).陣列的位址是陣列中下標為0的元素的低位元組的位址.

4). 重點:

陣列名就代表陣列的位址.

c語言的陣列名中儲存的是陣列的位址.

所以.我們不能直接列印陣列名,這樣得不到陣列的元素的值,因為陣列名中儲存的是陣列的位址.

所以我們應該使用%p來列印陣列名.

陣列的位址==陣列名== 陣列中的低位元組的位址== 陣列中下標為0的元素的位址==陣列中下標為0的元素的低位元組的位址. 

1).陣列的每乙個元素的型別相同.所以陣列的每乙個元素占用的位元組空間一樣.

2).使用sizeof運算子可以計算陣列總共占用的位元組數.

sizeof(陣列名);就可以得到這個陣列占用的總的位元組數.

3).得到陣列占用的總的位元組數以後,那麼就可以用總的位元組數除以每1個元素占用的位元組數.

就可以得到陣列的長度.

sizeof(陣列名)/每1個元素的位元組數.就可以得到陣列的長度.

4).不建議將位元組數寫死. 元素占用的位元組數建議也是使用sizeof計算出來.因為不同的系統不同的編譯器

相同的變數可能占用的位元組不一樣.

sizeof(arr) / sizeof(元素型別);

sizeof(arr) / sizeof(arr[0]);

位址傳遞:通過形引數組指標運算元組

實際上操作的就是是實參陣列.

1).

當陣列作為函式的引數的時候

. 會丟失陣列的長度.

所以,這個時候還需要

1個引數

讓呼叫者將傳入的陣列的長度傳進來.

2).

當陣列作為函式的引數的時候.

在函式的內部去修改這個引數陣列的元素,

其實修改的就是實參陣列的元素

3). 強調:

只有陣列作為函式的引數的時候,通過

sizeof

才算不出來長度.

C語音基礎 列舉23

enum 新型別名稱 enum direction 表示新建立了1個資料型別 這個資料型別的名稱叫做.enum direction 可以宣告這個型別的變數.這個變數中就只能儲存這其中指定的任意1個.1 語法格式 enum 列舉型別名稱 變數名 enum direction dir 表示.宣告了1個變...

C 基礎入門 12

deque容器 雙端陣列,可以對頭部進行插入和刪除,也可以對尾端 與vector區別 vector對頭部的插入刪除效率低,資料量越大,效率越低 deque對頭部的插入刪除更快 vector訪問元素的速度更快 deque內部工作原理 內部有中控器,維護每段緩衝區的內容,緩衝區中存放真實資料 中控器維護...

C 語音識別(文字to語音 語音to文字)

最近打算研究一下語音識別,但是發現網上很少有c 的完整 就把自己的學習心得放上來,和大家分享一下。1 speechsdk51.exe 67.0 mb 2 speechsdk51langpack.exe 81.0 mb 文字to語音 這個相當的簡單。1 在com選項卡裡面的microsoft spee...