C語言 陣列引數

2021-08-07 17:43:35 字數 1390 閱讀 2219

c語言規定陣列變數arr,本身就是位址(指向該陣列第乙個元素的型別的指標)

&arr也是位址(指向整個陣列的型別的指標)

所以陣列引數就是指標引數

#pragma warning(disable:4996)

# include

//引用函式庫

# include

void

test

(int a)

void

main()

;printf

("%x\n"

, a)

;test

(a);

system

("pause");

}

陣列作為函式引數,傳遞的是位址,函式的引數是陣列,不會在記憶體中再產生區域性變數。

# include

//引用函式庫

# include

void

show1

(int a[9]

)}void

show2

(int

*p)}

void

show3

(int

*p)}

void

main()

;printf

("%d\n"

,sizeof

(a))

;printf

("%x\n"

,a);

show1

(a);

printf

("\n");

show2

(a);

printf

("\n");

show3

(a);}36

4e3276a0

84e3276a0

123456789

84e3276a0

123456789

123456789

# include

//引用函式庫

# include

void

show1

(int a[3]

[3])

}}void

show2

(int

(*p)[3

])}}

void

main()

;printf

("%d\n"

,sizeof

(a))

;printf

("%x\n"

,a);

show1

(a);

printf

("\n");

show2

(a);

}

C語言陣列引數與指標引數

我們都知道引數分為形參和實參。形參是指宣告或定義函式時的引數,而實參是在呼叫函式時主調函式傳遞過來的實際值。1 能否向函式傳遞乙個陣列?看例子 void fun char a 10 intmain 先看上面的呼叫,fun b 10 將b 10 這個陣列傳遞到fun 函式。但這樣正確嗎?b 10 是代...

C語言陣列作為函式引數

一 陣列元素作為函式的實參 陣列元素就是變數,與普通變數沒有區別,將陣列元素傳送給形參,實現單向的值傳遞。include float max float x,float y int main int m a 0 for int i 1 i 6 i printf 陣列中的最大元素是 d m 二 陣列名...

C語言 陣列引數傳遞問題

陣列傳遞引數的話,如果直接傳指標過去。對陣列引數的操作會改變原始變數的值。如果不想影響原始變數的話,需要在函式裡面定義新的區域性陣列變數。賦值給區域性陣列變數,對區域性陣列變數進行操作。include include include int setarray char array int setar...