Re: [分享] 嵌入式系統公司指標宣告考題

看板C_and_CPP作者 ( 返無)時間12年前 (2012/02/28 22:57), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串3/5 (看更多)
※ 引述《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

02/28 23:16, , 1F
之前有人提供的連結 http://goo.gl/1GDy0
02/28 23:16, 1F

02/28 23:16, , 2F
b is a pointer to an array of 10 pointer to int
02/28 23:16, 2F

02/28 23:28, , 3F
arp 的型態就是 b 的型態沒錯
02/28 23:28, 3F

02/29 09:15, , 4F
int **arp[10]; int *((*b)[10]); ...arp, b 怎麼同?
02/29 09:15, 4F

02/29 09:16, , 5F
arp 不是元素都是int **, []高於*
02/29 09:16, 5F

02/29 09:40, , 6F
樓上,試試 cout << typeid(arp).name();
02/29 09:40, 6F
文章代碼(AID): #1FJEj6El (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1FJEj6El (C_and_CPP)