兩個問題:
1、下面兩個函式my_array_func和my_pointer_func第乙個輸出結果是否一樣?(p6和p17)
2、每個函式的第乙個輸出和第二個輸出結果是否一樣?(p6與p7,,,p17與p18)
能猜對的,估計也都理解c裡面陣列和指標的區別於聯絡。感覺自己不是很理解的,建議看c專家程式設計p84的圖。
**如下:
1char 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.exeaddr 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位...