Re: [問題] 請問union和call by value問題

看板C_and_CPP (C/C++)作者 (象象共和國國王)時間16年前 (2009/02/08 22:03), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
※ 引述《liptonbin (CATWILLFLY)》之銘言: : 請問一下 : union structure{ : unsigned short a; : unsigned short b[2]; : unsigned short c; : } data; : int d,e; : data.a=2; : data.c=4; : d=data.a; : 為什麼算出來d=4 ? union : a---+ __ __ __ __ c---+ b---------+ : 和 : void func(int b[]) : { : b[0]=6; : } : main() : { : int a,b[5]; : a=4; b[0]=3; : func(b); : printf("%d \n",b[0]); : } : 這不是call by value嗎 那怎麼結果是6呢 (而不是依造call by value 得到3)_ : 謝謝 b : 0x89abcdef func( 0x89abcdef) { *0x89abcdef = 6 } -- 我是大象 永遠的大象... 象象共和國國王 . Hudson -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.243.167

02/09 01:48, , 1F
第一個是union的特性 共用空間 第二個因為陣列本身就是個
02/09 01:48, 1F

02/09 01:49, , 2F
指標 所以自然是call by reference
02/09 01:49, 2F

02/09 01:50, , 3F
這位前輩講的超底層XD
02/09 01:50, 3F
文章代碼(AID): #19ZkOe24 (C_and_CPP)
文章代碼(AID): #19ZkOe24 (C_and_CPP)