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

C 語言指標搜尋:找出兩陣列首個相同元素 (指標版 while 迴圈)

     編輯:關於C語言

前言

以指標算術實作兩陣列尋找首個相同值,展示 `while` 迴圈配合指標遞增的寫法。

完整程式碼

#include 

int *searchSameElement(int *a, int *b, int len1, int len2) {
    int *pa = a, *pb = b;
    while (pa < a + len1) {
        pb = b;  /* 內層每次重置 */
        while (pb < b + len2) {
            if (*pa == *pb) return pa;
            pb++;
        }
        pa++;
    }
    return NULL;
}

int main() {
    int a[] = {4, 51, 8, 6, 7, 10};
    int b[] = {80, 8, 10, 90, 7, 10, 51};
    int len1 = sizeof(a)/sizeof(a[0]);
    int len2 = sizeof(b)/sizeof(b[0]);
    int *pt = searchSameElement(a, b, len1, len2);
    if (pt) printf("%d\n", *pt);
    else    printf("the same number don not find!\n");
    return 0;
}

指標版 vs 陣列下標版

  • `pa < a + len1` 等價 `i < len1`。
  • `*pa` 等價 `a[i]`。
  • 指標版更貼近記憶體操作本質,無索引變數開銷 (編譯器優化後通常相同)。

總結

指標算術 (`pa++`, `pa < end`) 是 C 語言處理陣列遍歷的地道風格,掌握後可靈活應用於各類線性搜尋演算法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved