C語言高階程式設計 陣列和指標作為函式形參

2021-09-29 07:23:05 字數 1056 閱讀 1321

測試環境:

win10 x86-64

gcc: x86_64-pc-cygwin

1. 說明

1)作為函式形參時(也只有這種情況),陣列與指標等同,int *p = int a,p和a在函式內部都是指標

2)陣列作為函式形參時將被轉化為指向陣列第乙個元素的指標,無論是int a[10]還是int a形式的形參,在函式內部都是int *a形式指標

3)沒有辦法直接將陣列本身傳遞給函式(可以間接傳遞,如將陣列封裝再結構體內~~~)

3)由於規則2),下列用法均正確,it's amazing!

fun(&i);

fun(p);

fun(a);

2. **:

#include #include void fun(int a[10])

void fun2(int a)

void fun3(int *a)

int main()

; p = &i;

fun(&i);

fun(p);

fun(a);

fun2(&i);

fun2(p);

fun2(a);

fun3(&i);

fun3(p);

fun3(a);

return 0;

}

3. 編譯

無warning無error

4. 執行

d:\baoli\desktop

λ .\a.exe

fun: a[0] = 1

fun: a[0] = 1

fun: a[0] = 5

fun2: a[0] = 1

fun2: a[0] = 1

fun2: a[0] = 5

fun2: a[0] = 1

fun2: a[0] = 1

fun2: a[0] = 5

C語言 指標陣列和指標陣列 函式指標和指標函式

在c語言中最令然頭疼的莫過於指標 特別是指標和陣列符號一起出現的 傻傻搞不清楚的原因主要在於運算子的優先順序沒有搞清 指標的運算子 陣列運算子,函式運算子 陣列元算符 運算優先順序和函式運算子 或者說強制改變運算順序符號 都是位於第一優先順序的 而我們的指標運算子則是第二優先順序 所以當出現 int...

C語言高階剖析 32 陣列指標和指標陣列

例如 int array 5 的型別為 int 5 我們經常會碰見這樣的情景 問 這裡定義的陣列是什麼型別的?答 int 型。這樣的回答就是概念不清晰了,陣列的型別包括元素型別和陣列大小,回答 int 型只回答了元素型別,正確的答案是 int 5 c 語言通過 typedef 為陣列型別重新命名,如...

C語言 指標陣列和指標陣列

本質是陣列 只不過呢,它裡面存放的資料型別不是int,也不是char這類基本型別,而是乙個指標型別,說白了就是位址,所以叫指標陣列!記住 是存放指標的陣列!int p n 本質是指標 只不過是指向乙個陣列的指標,也稱之為 行指標 int p n p是乙個指標,指向乙個int型別的一位陣列,這個一位陣...