1. 程式人生 > 其它 >7.陣列的定義和使用

7.陣列的定義和使用

技術標籤:C初級

想要實現對陣列的遍歷訪問請現觀看3.迴圈和操作符博文中 ***[] 下標引用部分內容***部分的內容

一維陣列定義及初始化

棧區開闢
  • 給定陣列大小,不進行初始化

    int arr[4];

每個元素都會被初始化為0XCCCCCCCC即3435973836,實際上陣列有4個整形,但是為了檢查陣列越界,往後還會多開闢一個空間並且也會初始化為0XCCCCCCCC

char arr[3] = {0x66, 0x88}; 

當定義元素個數為3的字元陣列的時候,記憶體所操作的部分是8+3個位元組

不斷更改字元陣列初始的元素個數,發現字元陣列開闢空間的大小是,陣列初始的元素個數除以4向上取證,然後加1,再乘以4,以及最後末尾追加操作的3個位元組

  • 給定陣列大小,進行部分初始化

    int arr[4] = { 1 };

除陣列第一個元素為1外,其餘全為0

  • 不給定陣列大小,直接通過初始化列表進行定義

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

堆區動態開闢一維陣列

請參考: 牛客C語言入門題庫 博文中例題 ***BC96有序序列判斷***學習

一維陣列的遍歷

  • 通過下標引用[]操作符依次訪問陣列所有元素
#include <stdio.h>
#include <string.h>
int main() {
    char arr[] = "nirvana";
    for (int
i = 0; i < strlen(arr); ++i) printf("%c ", arr[i]); printf("\n"); return 0; }

關於陣列給函式傳參的知識請觀看:博文 6.函式與遞迴 中函式傳參 陣列傳參與sizeof使用的例子

二維陣列的定義和使用

  • 棧區定義一個三行四列的矩陣
#include <stdio.h>
int main() {
    int arr[3][4] = { 0 };
    for (int i = 0; i < 3; ++i) 
        for
(int j = 0; j < 4; ++j) arr[i][j] = i+j; for (int i = 0; i < 3; ++i){ for (int j = 0; j < 4; ++j) printf("%d ", arr[i][j]); printf("\n"); } return 0; }