看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《fengchu (Galileo Galilei)》之銘言: : 美國某著名嵌入式系統公司2005年9月面試題,供板友們練習 : Write in words the data type of the identifier involved in the following : definitions. : (1) float (**def)[10]; : (2) double *(*gh)[10]; : (3) double (*f[10])(); : (4) int *((*b)[10]); 直接看, 我不是很會看, 所以用 typedef 來完成一樣的語法。 請各位朋友看看, 這樣是 (4) 的意思嗎? #include <stdio.h> typedef int *AR[10]; int main(void) { AR ar; AR *arp=0; int i=1; for (i=1 ; i <=10 ; ++i) { ar[i] = (int *)i; } arp = &ar; for (i=1 ; i <= 10 ; ++i) printf("%i: %p\n", i, (*arp)[i]); return 0; } : (5) long (*fun)(int); : (6) int (*(*F)(int, int))(int); : 解答在次頁 : (1) def是一個指向指標的指標,*def是指向一個有10個元素的一維陣列的指標,陣列的 : 元素型別為float : (2) gh是一個指標,指向一個有10個元素的一維陣列,陣列元素型別為double* : (3) f是一個有10個元素的陣列,陣列的元素型別為函式指標,指向的函式為沒有參數且 : 返回值型別為double的函式 : (4) b是一維陣列的指標,陣列元素型別為int* : (5) fun是一個函數指標。指向的函數輸入參數型別為int,回傳值型別為long : (6) F是一個函數指標,指向的函式輸入參數為(int, int),並返回一個函式指標。返回 : 的函式指標指向一個輸入參數為(int)回傳值型別為int的函式 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.184.191.150
stimim:之前有人提供的連結 http://goo.gl/1GDy0 02/28 23:16
stimim:b is a pointer to an array of 10 pointer to int 02/28 23:16
stimim:arp 的型態就是 b 的型態沒錯 02/28 23:28
yshihyu:int **arp[10]; int *((*b)[10]); ...arp, b 怎麼同? 02/29 09:15
yshihyu:arp 不是元素都是int **, []高於* 02/29 09:16
purpose:樓上,試試 cout << typeid(arp).name(); 02/29 09:40