看板 C_and_CPP 關於我們 聯絡資訊
由於最近常在看別人寫的Code 從中發現一些不太一樣的地方想來請教一下大家 main.h func(char *); main.cpp func(char buffer[]){ } func(char *buffer){ } 主要也就是傳入一個陣列的起始指標 然後在function 中做一些計算後做替換的動作 我使用上結果好像都是一樣的 所以這兩個是一樣的東西嗎? 還是其實是有差異的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.231.80
tropical72:以這例子而言,都一樣, 最後都看作 char* buffer. 09/09 18:30
tropical72:但多維下, char buf[2][3] / (*buf)[3] / **buf 會不同 09/09 18:30
tomore:感謝解答~ 09/09 18:36
diabloevagto:就我的理解,其實指標跟陣列是一樣的,我是過用[]去 09/09 19:38
diabloevagto:讀取指標一樣也ok 09/09 19:38
purpose:不碰到sizeof或初始化參考的話,char [2][3]跟char (*)[3] 09/09 19:45
purpose:使用上沒有差異吧 09/09 19:45
tropical72:purpose 對於 char[2][3] / char (*)[3] 所言為是 09/09 20:05
tropical72:感謝補充。 09/09 20:05
purpose:小弟只是說出自己的理解,可拿不出依據,不敢說一定是對的 09/09 20:58
purpose:到是t大當初說不同,是指什麼的不同,好奇 09/09 20:59
loveme00835:自己用 typeid 試試就知道了... 09/09 21:03
Favonia:指標和陣列是完全不一樣的,只是很多地方會自動轉型。 09/09 21:29
amozartea:傳陣列的話 可以當作是常數指標 你在函數裡把傳的東西 09/09 23:16
amozartea:指到別的地方的話 原本的陣列還是指同一個地方 09/09 23:17
amozartea:傳指標的話你動掉就動掉了 09/09 23:17