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...