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

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

C++中一維數組是什么?怎么使用?【C++培訓】

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

一維數組的定義與初始化

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

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

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

int array[5l;

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

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

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

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

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

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

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

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

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

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

注意

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

(2)數組名的命名同變量名的命名規則相同;

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

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

一維數組的引用

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

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

數組名 [下標];

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

#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]);

    }

}

運行結果若下圖所示:

1588840282466_一維數組01.jpg


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

注意

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

一維數組的常見操作

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

1、一維數組的遍歷

在操作數組時,經常需要依次訪問數組中的每個元素,這種操作稱作數組的遍歷。接下來使用for循環依次遍歷數組中的元素,如下所示:

#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]);

    }

}

運行結果如下:

1588840291606_一維數組02.jpg


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

2、一維數組的最值

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

#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;

}

運行結果如下

1588840301348_一維數組03.jpg


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

3、一維數組的排序

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

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

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

第3步,依次類推,持續對越來越少的元素重復上面的步驟,直到沒有任何一對元素需要比較為止。

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

#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_一維數組04.jpg


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

1588840238636_1574231078139_冒泡排序動圖.gif


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

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

红豆直播app黄台_红豆直播app下载免费_红豆直播app下载