[問題] 有關引數讀取問題

看板C_and_CPP作者 (嘻嘻)時間13年前 (2011/04/19 00:49), 編輯推噓1(1015)
留言16則, 4人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我想請問 一開始宣告函式的時候如果定義的引數是一個雙重指標 而實際上呼叫該函釋的時候卻是寫入一個參考 哪兩者之間的關係為何? EX: 宣告 void prepare_enc_frame_picture(Store **stored_pic); 呼叫 prepare_enc_frame_picture(&enc_frame[0]); //Store為自己定義的資料結構,enc_frame也是(Store **enc_frame;) 那這樣子的話 stored_pic跟enc_frame[0]之間有什麼關係? 我可以直接說這兩個就是一樣的東西嗎?? 不知道這樣問大家清楚我的問題是什麼嗎 希望我表達得夠清楚 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.208.69

04/19 00:52, , 1F
寫入的應該不是參考,是enc_frame[0]所在的位址
04/19 00:52, 1F

04/19 00:53, , 2F
那stored_pic跟enc_frame是一樣的變數嗎??
04/19 00:53, 2F

04/19 01:01, , 3F
我覺得是一樣的
04/19 01:01, 3F

04/19 01:02, , 4F
其實你把&enc_frame[0]改成enc_frame應該也會對
04/19 01:02, 4F

04/19 01:02, , 5F
非常感謝樓上的幫忙^^
04/19 01:02, 5F

04/19 01:11, , 6F
&在你舉的例子是取址的意思, 與C++的參考不是同個東西:)
04/19 01:11, 6F

04/19 01:12, , 7F
另外, stored_pic和enc_frame應該不會是一樣的變數, 而
04/19 01:12, 7F

04/19 01:13, , 8F
是stored_pic這個指標變數裡記錄的值(指向的位址)為
04/19 01:13, 8F

04/19 01:15, , 9F
&enc_frame[0]的結果(值), 中譯像是enc_frame[0]的位址
04/19 01:15, 9F

04/19 01:16, , 10F
你可以比比看 &enc_frame 和 &store_pic 結果應該是不一
04/19 01:16, 10F

04/19 01:16, , 11F
樣的:)
04/19 01:16, 11F

04/19 01:29, , 12F
所以**stored_pic是指向enc_frame[0]的address囉?
04/19 01:29, 12F

04/19 01:49, , 13F
(*stored_pic) 即 enc_frame[0], (**stored_pic) 即
04/19 01:49, 13F

04/19 01:50, , 14F
*enc_frame[0], 星星等量增加
04/19 01:50, 14F

04/19 01:51, , 15F
* 跟 & 互抵銷
04/19 01:51, 15F

04/19 01:58, , 16F
再次感謝^^
04/19 01:58, 16F
文章代碼(AID): #1Dh6kbsT (C_and_CPP)
文章代碼(AID): #1Dh6kbsT (C_and_CPP)