函式形參為陣列或指標小測試,你能猜對答案嗎?

2022-04-11 09:20:25 字數 977 閱讀 1873

兩個問題:

1、下面兩個函式my_array_func和my_pointer_func第乙個輸出結果是否一樣?(p6和p17)

2、每個函式的第乙個輸出和第二個輸出結果是否一樣?(p6與p7,,,p17與p18)

能猜對的,估計也都理解c裡面陣列和指標的區別於聯絡。感覺自己不是很理解的,建議看c專家程式設計p84的圖。

**如下:

1

char ga = "

abcdefghijklm";

23void

4 my_array_func(char ca[10])5

1213

14void

15 my_pointer_func(char *pa)

1623

24int

25main()

26

答案

c:\program files\microsoft visual studio 10.0\vc>array.exe

addr of

global array = 0x8bb000

addr (ga[

0]) = 0x8bb000

addr (ga[

1]) = 0x8bb001

addr of array param = 0x22f9d8

the element of ca = 0x8bb000

addr (ca[

0]) = 0x8bb000

addr (ca[

1]) = 0x8bb001

++ca = 0x8bb001

addr of ptr param = 0x22f9d8

the element of pa = 0x8bb000

addr (pa[

0]) = 0x8bb000

addr (pa[

1]) = 0x8bb001

++pa = 0x8bb001

函式形參 指標,引用,const,陣列形參

指標也是物件,也會拷貝,所以分實參指標和形參指標。在傳進函式時,實參進行拷貝,所以在函式裡改變指標值不影響實參。void reset int ip 引用不是物件,通過引用可以改變實參 void reset int i 使用引用的好處是避免了拷貝。其實也只是兩個變數名的傳遞,和變數規則一致,如果在函式...

函式 陣列和指標的形參

有一點要注意,只有在函式原型或者是函式定義頭中,才可以使用int a代替int a 如 int sum int a,int n int a形式和int a形式都表示a是指向int的指標。但是,int a只能用於宣告形式參量。第二種形式 int a 則是提醒指標a指向的不止只乙個int型變數,還是乙個...

函式呼叫引數為指標時,實參跟形參的問題

include void change int p int main 執行結果 0x7fffdb8192a4 0x7fffdb8192a4 0x7fffdb81928c 5 0x7fffdb8192a4 可以看出,實參跟形參是兩個不同的指標,只不過進入函式時,實參跟形參都指向main函式中的val位...