首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言數組總結與實戰應用:定義、初始化、越界防範、排序查找預備

     編輯:C 語言基礎

數組核心知識總結

1. 定義語法

type arrayName[length];
  • length 最好為常量表達式(如 10、20*4),變量長度數組 (VLA) 某些編譯器不支持
  • 數組內存連續分配,數組名 = 首元素地址 = 首地址

2. 元素訪問

arrayName[index]
  • 下標從 0 開始,範圍 0 ≤ index < length
  • 越界訪問 → 未定義行為(數據破壞、崩潰、看似正常但錯誤)

3. 初始化方式

// 單個賦值
int a[3]; a[0]=3; a[1]=100; a[2]=34;

// 整體初始化(定義時)
float b[] = {23.3, 100.0, 10, 0.34};      // 長度自動推導
int m[10] = {100, 30, 234};               // 部分初始化,餘位補 0
char str1[] = "https://c.biancheng.net";   // 字符串初始化(含 \0)
int arr[10] = {0};                        // 全 0 初始化技巧
char str2[20] = {0};

實戰示例:求數組最大值與最小值

#include <stdio.h>

int main() {
    int a[10], max, min, i;
    
    // 從控制台輸入 10 個整數(利用標準輸入緩衝區,可一次輸入多個)
    for (i = 0; i < 10; i++) scanf("%d", &a[i]);
    
    // 假設首元素為最大/最小,遍歷比較更新
    max = min = a[0];
    for (i = 1; i < 10; i++) {
        if (a[i] > max) max = a[i];
        if (a[i] < min) min = a[i];
    }
    
    printf("The max is %d, The min is %d\n", max, min);
    return 0;
}

運行結果

2 123 45 100 575 240 799 710 10 90
The max is 799, The min is 2

關鍵技巧說明

  1. 緩衝區輸入:scanf 讀取時遇空格/換行自動分隔,可一次性輸入多個數字
  2. 假設法:先假設 a[0] 為極值,再與其餘元素逐一比較,邏輯簡潔高效

排序與查找:數組進階必修課

學完數組基礎,必須掌握兩大核心操作:

  • 排序:將無序數組按升序/降序重排(如 10 個亂序整數 → 有序輸出)
  • 查找:判斷元素是否存在、定位下標(如字符串中查找子串)

常見算法:

分類算法複雜度特點
排序冒泡/選擇/插入O(n²)簡單、教學用
快速排序O(n log n) 平均實戰最快、不穩定
歸並排序O(n log n) 穩定穩定、需額外空間
堆排序O(n log n)原地、不穩定
查找順序查找O(n)無序數組通用
二分查找O(log n)需有序數組
排序與查找算法已設置為獨立章節講解,請查看《C語言排序和查找》專題。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved