看板 C_and_CPP 關於我們 聯絡資訊
想請教一下 版上各位先進 char (*ptr)[10] 是 p is a pointer to array 10 of char char p[10] 是 p is a array 10 of char 如果單純想要使用陣列 就用char p[10]就好 如果想要有個pointer 去指向陣列p 就單純宣告char *ptr=p就好 那char (*ptr)[10] 這種的使用時機為何?? 懇請賜教 感謝! -- CyberPanel 5000CP 換 NT.500 http://myurl.com.tw/05bd EmailCash 5000e 換 NT.500 http://myurl.com.tw/rgdq -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.207.113 ※ 編輯: nikeasyanzi 來自: 111.251.207.113 (10/16 09:22)
azureblaze:因為array不是pointer,只是可以轉成pointer 10/16 10:14
azureblaze:一轉成pointer就放棄了大小之類的資訊 10/16 10:16
azureblaze:http://ideone.com/fg1xsu 10/16 10:17
Feis:二維陣列 10/16 10:36
cutekid:char matrixA = [10][10]; 10/16 10:37
cutekid:char matrixB = [20][10]; 10/16 10:37
cutekid:char (*ptr)[10]; 10/16 10:37
cutekid:ptr = matrixA; /* or ptr = matrixB */ 10/16 10:37
hichcock:指標陣列, 如果你有多個指標的需求的話... 10/16 11:40
Killercat:假設char*你用來存C style string, char (*p)[10]相當於 10/16 13:09
Killercat:是宣告一個10個c style string的array 10/16 13:09
Feis:char (*p)[10] 應該是指向陣列的指標, 不是指標陣列 10/16 17:01
Feis:此外 char p[10]; char *ptr = p; 的 ptr 是指向元素而非陣列 10/16 17:12
EdisonX:奇怪,為什麼沒人從 malloc 角度切入?這差很多耶! 10/17 06:45
EdisonX:typedef char (*name_string)[10] ; 10/17 06:46
EdisonX:malloc (sizeof(*name_string)); 大概類似這樣吧 10/17 06:46
NoStra:指標陣列吧? P是一個陣列,每個元素是一個(char *) 10/17 13:35
Feis:那 char *p[10] 是什麼 ? 10/17 13:47
azureblaze:所以我會用typdef char c10[10]; c10 *p; 10/17 14:00
azureblaze:人腦要處理declarator實在太麻煩了 10/17 14:01
NoStra:是我看錯 SORRY~ 10/17 23:22
rick68:時機在於你需要確認該array的大小,單純的指標無法得到size 11/24 17:46