C語言一維數組入門教程

來源:互聯網
上載者:User

一、一維數組

1、定義一個一維數組:
(1)格式:儲存類別   類型標識符  數組名標識符[常量運算式]
(2)例子:static int a[10]
(3)注意:定義數組時數組的元素必須是常量,不能是變數,例如int n=3;int a[n] 這是不對的。

2、對數組的引用:

(1)引用形式:數組名[下標] 例如 a[2]
 ( 2) 注意數組的下標是由0開始,如a[3] 表示有三個元素 分別是a[0],a[1] ,a[2] .如果你用a[3]訪問第三個元素是錯誤的。
(3)對數組的遍曆:如果要一次訪問數組的全部元素,則只能使用遍曆的形式,如下

 代碼如下 複製代碼

for(int i=0;i<5;i++){
printf(“d%n”,a[i]);
}

(4)怎麼輸入數組?
 注意不能整體一下子輸入數組,如果你想scanf(“%d,”,a);其中a是數組,這樣只能夠輸入a[0],因為數組名代表的就是數組的首地址,它與scanf(“%d,”,&a[0]);等價。如果想全部輸入,則需要使用迴圈的方式:
例如:

 代碼如下 複製代碼
for(int i=0;i<5;i++){
scanf(“d%n”,&a[i]);
}

3、數組的儲存結構:
(1)有一個整型數組a,裡面有4個元素,知道了第一個元素的記憶體位址是1000,怎麼求出第三個元素的記憶體位址 ?
  解:c語言為數組開闢了連續的儲存單元,每個元素都會佔據一樣的位元組數,由於整型一般是佔據2個位元組,所以每個元素都會佔據2個位元組的記憶體空間,數組的其真實位址是1000,所以第二個元素的地址是1002,第三個是1004,第四個是1006.
根據這個原理,可以得出一個公式:
數組的元素地址 = 數組的起始地址 + 元素下標 x  sizeof(數群組類型)
 

數組的初始化:

解:初始化的方式有:int a[5] = {0,1} 或者 nt a[5] = {0,1,5,4,3}

注意:如果元素的長度不夠,系統會自動為後面的元素補0,就像第一個a[5] = {0,1},就相當於a[5] = {0,1,0,0,0}。千萬不要多了,這樣會導致溢出,例如a[5] = {0,1,5,4,3,0,5}就是錯誤的行為。

例如:

 代碼如下 複製代碼

int a[10];           說明整型數組a,有10個元素。

float b[10],c[20];   說明實型數組b,有10個元素,實型數組c,有20個元素。

char ch[20];         說明字元數組ch,有20個元素。

利用資料進行排序(起泡排序)

從第一個數開始依次對相鄰兩數進行比較,如次序對則不做任何操作;如次序不對則使這兩個數交換位置。第一遍的(N-1)次比較後,最大的數已放在最後,第二遍只需考慮(N-1)個數,以此類推直到第(N-1)遍比較後就可以完成排序。

來源程式如下:

 代碼如下 複製代碼

#define N 10

#include"stdio.h"

main()

{

int a[N],i,j,temp;

printf("please input %d numbersn",N);

for(i=0;i<N;i++)

scanf("%d",&a[i]);

for(i=0;i<N-1;i++)

for(j=0;j<N-1-i;j++)

{

if(a[j]>a[j+1])

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

printf("the array after sort:n");

for(i=0;i<N;i++)

printf("%5d",a[i]);

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.