c語言一維陣列逆序輸出 深入淺出C語言一維陣列

2021-10-13 18:13:13 字數 1776 閱讀 4628

c語言的陣列就是一些列具有相同型別(一些弱型別檢查的語言比如python無需型別相同)的資料的集合,這些資料在記憶體中依次挨著存放,彼此之間沒有縫隙。要將資料儲存至陣列,必須為之分配對應的儲存空間。

陣列的定義:

比如儲存整型資料的陣列如下:

int temp[8]=; //此種宣告方式申請的是棧空間,在函式體結束時由系統自動**。

而int* temp=new int[8]; //此種方式申請的是堆空間,由程式設計師自己釋放管理temp這一塊記憶體

上面兩行**從功能上可以說是等價的,都是為我們分配了一塊8*4位元組的記憶體,並取名叫temp。我們把這樣的一組資料的集合稱為陣列,而陣列中的每乙個資料被稱為陣列元素,比如temp[2],所包含的資料元素的個數稱之為陣列長度,例如temp其陣列長度為8。陣列中的每乙個元素的都有唯一的編號,從下標0開始(重點:不是我們熟知的1,一定要記住),訪問陣列元素通過編號訪問即可,比如訪問temp的第2個元素如下:

temp[1]

接下來我們儲存一些資料(10,20,40,80,100,120,160,200)至temp,賦值語句如下:

temp[0]=10;

temp[1]=20;

temp[2]=40;

temp[3]=80;

temp[4]=100;

temp[5]=120;

temp[6]=160;

temp[7]=200;

這裡的0、1、2、3、4、5、6、7就是陣列下標,temp[0]、temp[1]、temp[3]...... 就是陣列元素。

在工作過程中,我們通常會遇到為指定一維陣列迴圈賦值的情況,下面以temp為例採用for迴圈賦值:

#include int main();//初始化,防止出現髒資料

int index=0;

for(index=0;index<8;index++)

//迴圈列印陣列元素值

for(index=0;index < 8;index++)

return 0;

}輸出結果為:0 2 4 6 8 10 12 14 16。

說明:變數index既為陣列下標,也為for迴圈結束條件。因為陣列的長度為8,因此我們for迴圈的條件不能超過

8。

有時候我們也需要與使用者互動(讓使用者輸入資料至陣列),讓使用者輸入8個資料至temp的**如下:

#include int main();//初始化,防止出現髒資料

int index=0;

printf("input datan");

for(index=0;index<8;index++)

//迴圈列印陣列元素值

for(index=0;index < 8;index++)

return 0;

}執行結果:

1 4 5 8 9 8 8 9(輸入)

1 4 5 8 9 8 8 9(輸出)

位址。

綜上所述,一維陣列通用的定義方式為:

datetype  arrayname[size];

datetype表示資料型別,可以為char double int float 自定義資料結構等

arrayname為陣列名,size為陣列長度。

訪問陣列元素時,下標的取值範圍為 0 ≤ index < size,過大或過小都會越界,導致陣列溢位(一定要注意)。

C 深入淺出Dynamic

我們知道c 是乙個強型別語言,也就是說編譯器在編譯的時候會堅持資料型別是否正確。但是dynamic的出現讓c 具有了弱語言型別的特性。編譯器在編譯的時候不再對型別進行檢查,編譯器預設dynamic物件支援你想要的任何特性。dynamic dy 100 dy.name 89 dy.getname 上例...

深入淺出viewport 一

viewport對於移動瀏覽器上的網頁展示比較重要,那麼我們為什麼需要設定viewport呢?viewport到底是個什麼東東?讓我們一起來抽絲剝繭,一點點的揭露它的真相。這裡是翻譯的文章,沒有逐字翻譯。viewport的作用是限制頁面頂級的包含元素,這聽起來可能有點模糊不清。舉個例子,假設你有乙個...

深入淺出AOP(一)

aop事實上非常早之前依照做出來了一些東西,之所以不敢說做出來了。是由於它是什麼?怎麼實現?做出來的東西是不是?先前一直查資料。查到的資料跟著做。到後來發現,aop越來越大,而非常多資料跟aop本身的思想有衝突的地方,所以還有非常多要學習的地方。能夠動態的加入和刪除在切面上的漏記而不影響原來的執行 ...