教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

C++中一維數(shù)組是什么?怎么使用?【C++培訓(xùn)】

更新時間:2020年05月07日16時40分 來源:傳智播客 瀏覽次數(shù):

一維數(shù)組的定義與初始化

一維數(shù)組指的是只有一個下標的數(shù)組,它用來表示一組具有相同類型的數(shù)據(jù)。在C語言中,一維數(shù)組的定義方式如下所示:

類型說明符 數(shù)組名[常量表達式];

在上述語法格式中,類型說明符表示數(shù)組中所有元素的類型,常量表達式指的是數(shù)組的長度,也就是數(shù)組中存放元素的個數(shù)。

int array[5l;

上述代碼定義了一個數(shù)組,其中,int是數(shù)組的類型,aray是數(shù)組的名稱,方括號中的5是數(shù)組的長度。完成數(shù)組的定義后,只是對數(shù)組中的元素開辟了一塊內(nèi)存空間。這時,如果想使用數(shù)組操作數(shù)據(jù),還需要對數(shù)組進行初始化。數(shù)組初始化的常見的方式有3種,具體如下

(1)直接對數(shù)組中的所有元素賦值,示例代碼如下:

int i[5]={1,2,3,4,5};

上述代碼定義了一個長度為5的數(shù)組i,并且數(shù)組中元素的值依次為1、2、3、4、5。

(2)只對數(shù)組中的一部分元素賦值,示例代碼如下

int i[5]={1,2,3};

在上述代碼中,定義了一個int類型的數(shù)組,但在初始化時,只對數(shù)組中的前3個元素進行了賦值,其他元素的值會被默認設(shè)置為

(3)對數(shù)組全部元素賦值,但不指定長度,示例代碼如下:

int i[]={1,2,3,4};

在上述代碼中,數(shù)組i中的元素有4個,系統(tǒng)會根據(jù)給定初始化元素的個數(shù)定義數(shù)組的長度,因此,數(shù)組i的長度為4。

注意

(1)數(shù)組的下標是用方括號括起來的,而不是圓括號;

(2)數(shù)組名的命名同變量名的命名規(guī)則相同;

(3)數(shù)組定義中,常量表達式的值可以是符號常量,如下面的定義就是合法的。

int a[N];      //假設(shè)預(yù)編譯命令#define N 4,下標是符號常量

一維數(shù)組的引用

在程序中,經(jīng)常需要訪問數(shù)組中的一些元素,這時可以通過數(shù)組名和下標來引用數(shù)組中

的元素。一維數(shù)組元素的引用方式如下所示:

數(shù)組名 [下標];

在上述方式中,下標指的是數(shù)組元素的位置,數(shù)組元素的下標是從0開始的。例如,引用數(shù)組X的第3個元素的方式為X[2]為了幫助大家更好地理解數(shù)組元素的引用榜下業(yè)通計一個室例來演示,如下所示:

#include

void main(int argc, char *argv[]){

    int x[5] = {2,3,1,4,6};

    int i;

    for (i = 0; i < 5; i++) {

        printf("%d\n", 2 * x[i]);

    }

}

運行結(jié)果若下圖所示:

1588840282466_一維數(shù)組01.jpg


在上面案例中,首先定義了一個數(shù)組x,然后通過下標的形式獲取到數(shù)組中的元素,最后將元素乘以2后輸出。

注意

數(shù)組的下標都有一個范圍,即“0~[數(shù)組長度-1]”,假設(shè)數(shù)組的長度為6,其下標范圍為0~5。當訪問數(shù)組中的元素時,下標不能超出這個范圍,否則程序會報錯。

一維數(shù)組的常見操作

數(shù)組在編寫程序時應(yīng)用非常廣泛,如經(jīng)常需要對數(shù)組進行遍歷、獲取最值、排序等操作靈活地使用數(shù)組對實際開發(fā)很重要。接下來針對一維數(shù)組的常見操作進行詳細的講解,具體如下。

1、一維數(shù)組的遍歷

在操作數(shù)組時,經(jīng)常需要依次訪問數(shù)組中的每個元素,這種操作稱作數(shù)組的遍歷。接下來使用for循環(huán)依次遍歷數(shù)組中的元素,如下所示:

#include

void main(int argc, char *argv[]){

    int x[5] = {2,3,1,4,6};

    int i = 0;

    for (i = 0; i < 5; i++) {

        printf("x[%d]:%d\n", i, x[i]);

    }

}

運行結(jié)果如下:

1588840291606_一維數(shù)組02.jpg


在上面案例中,首先定義了一個長度為5的數(shù)組X,然后定義了一個變量,由于數(shù)組的下標范圍為0-4,因此可以將i的值作為下標,依次去訪問數(shù)組中的元素,并將元素的值輸出。

2、一維數(shù)組的最值

在操作數(shù)組時,經(jīng)常需要獲取數(shù)組中元素的最值。接下來通過案例演示如何獲得數(shù)組中最大的數(shù)值。

#include

int main(int argc, char *argv[]){

    int x[5] = {2,3,1,4,6};

    int nMax = x[0];

    int i = 0;

    for (i = 0; i < 5; i++) {

        if (x[i] > nMax) {

            nMax = x[i];

        }

    }

 

    printf("max:%d\n", nMax);

    return 0;

}

運行結(jié)果如下

1588840301348_一維數(shù)組03.jpg


在上面案例找那個實現(xiàn)了獲取數(shù)組X最大值的功能。在第5行代碼中假定數(shù)組中的第1個元素為最大值,并將其賦值給nMax,在第7~13行代碼對數(shù)組中的其他元素進行遍歷,如果發(fā)現(xiàn)比mMax值大的元素,就將最大值nMx設(shè)置為這個元素的值,這樣,當數(shù)組遍歷完成后,nMax中存儲的就是數(shù)組中的最大值。

3、一維數(shù)組的排序

在操作數(shù)組時,經(jīng)常需要對數(shù)組中的元素進行排序。接下來為大家介紹一種比較常見的排序算法一冒泡排序。在冒泡排序的過程中,不斷地比較數(shù)組中相鄰的兩個元素,較小者向上浮、較大者往下沉,整個過程和水中氣泡上升的原理相似,接下來,分步驟講解冒泡排序的整個過程,具體如下。

第1步,從第1個元素開始,將相鄰的兩個元素依次進行比較,直到最后兩個元素完成比較。如果前1個元素比后1個元素大,則交換它們的位置。整個過程完成后,數(shù)組中最后1個元素自然就是最大值,這樣也就完成了第1輪的比較。

第2步,除了最后1個元素,將剩余的元素繼續(xù)進行兩兩比較,過程與第1步相似,這樣就可以將數(shù)組中第二大的數(shù)放在倒數(shù)第2個位置。

第3步,依次類推,持續(xù)對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對元素需要比較為止。

了解了冒泡排序的原理之后,接下來通過一個案例來實現(xiàn)冒泡排序。

#include

void main(int argc, char ** argv[]){

    int arr[5] = { 9,8,3,5,2 };

    int temp = 0;

    int i, j;

    printf("冒泡排序前:\n");

    for (i = 0; i < 5; i++) {

        printf("%d ", arr[i]);

 

    }

    printf("\n");

    for (i = 0; i < 5 - 1; i++) {

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

            if (arr[j] > arr[j + 1]) {

                temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }

        }

    }

    printf("冒泡排序后:\n");

    for (i = 0; i < 5; i++) {

        printf("%d ", arr[i]);

    }

    printf("\n");

}

1588840310566_一維數(shù)組04.jpg


在上面的案例中,通過嵌套for循環(huán)實現(xiàn)了冒泡排序。其中,外層循環(huán)用來控制進行多少輪比較,每一輪比較都可以確定1個元素的位置,由于最后1個元素不需要進行比較,因此,外層循環(huán)的次數(shù)為數(shù)組的長度-1,內(nèi)層循環(huán)的循環(huán)變量用于控制每輪比較的次數(shù),在每次比較時,如果前者小于后者,就交換兩個元素的位置。下面通過一張動圖來演示冒泡排血的運算過程。

1588840238636_1574231078139_冒泡排序動圖.gif


以上我們介紹了C++一維數(shù)組的常見操作,希望對您有所幫助,如果通過學(xué)習(xí)C++快速提升自己找到工作,可以了解傳智播客C++培訓(xùn)課程。

猜你喜歡:
C語言如何獲取隨機數(shù)?
C/C :指針數(shù)組和數(shù)組指針淺析
C語言二維數(shù)組的定義和引用

0 分享到:
和我們在線交談!