------ 文章開始 ------

作者: csihcs (非天夜翔) 看板: C_and_CPP
標題: Re: [分享] 嵌入式系統公司指標宣告考題
時間: Tue Feb 28 03:37:58 2012

※ 引述《fengchu (Galileo Galilei)》之銘言:
: 美國某著名嵌入式系統公司2005年9月面試題,供板友們練習
: Write in words the data type of the identifier involved in the following
: definitions.
: (1) float (**def)[10];

def is  [1;33ma Pointer to  [32ma Pointer to  [35man Array of 10 float [m

def
 [1;33m┌─────┐0x00fffffc
 [1;33m│0x00fffff8│
 [1;33m└────┼┘
 [1;33m          └─┐
 [1;33m              ↓
 [1;32m┌─────┐0x00fffff8
 [1;32m│0x00fffff4│
 [1;32m└────┼┘
 [1;32m          └─┐
 [1;32m              ↓
 [1;35m┌─────┐0x00fffff4
 [1;35m│   float01│
 [1;35m├─────┤
 [1;35m│   float02│
 [1;35m├─────┤
 [1;35m│   float03│
 [1;35m├─────┤
 [1;35m│   float04│
 [1;35m├─────┤
 [1;35m│   float05│
 [1;35m├─────┤
 [1;35m│   float06│
 [1;35m├─────┤
 [1;35m│   float07│
 [1;35m├─────┤
 [1;35m│   float08│
 [1;35m├─────┤
 [1;35m│   float09│
 [1;35m├─────┤
 [1;35m│   float10│
 [1;35m└─────┘
 [m
: (2) double *(*gh)[10];

gh is  [1;33ma Pointer to  [1;32man Array of 10 Pointer to  [1;35mdouble [m

gh
 [1;33m┌─────┐0x00fffffc
 [1;33m│0x00fffff8│
 [1;33m└────┼┘
 [1;33m          └─┐
 [1;33m              ↓
 [1;32m┌─────┐0x00fffff8
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000004┼─────→ [1;35m0x10000004│double 01 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000014┼─────→ [1;35m0x10000014│double 02 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000024┼─────→ [1;35m0x10000024│double 03 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000034┼─────→ [1;35m0x10000034│double 04 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000044┼─────→ [1;35m0x10000044│double 05 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000054┼─────→ [1;35m0x10000054│double 06 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000064┼─────→ [1;35m0x10000064│double 07 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000074┼─────→ [1;35m0x10000074│double 08 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000084┼─────→ [1;35m0x10000084│double 09 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m├─────┤
 [1;32m│          │             [1;35m          ┌─────┐
 [1;32m│0x10000094┼─────→ [1;35m0x10000094│double 10 │
 [1;32m│          │             [1;35m          └─────┘
 [1;32m└─────┘
 [m
: (3) double (*f[10])();

f is  [1;33man Array of 10 Pointer to
 [1;32m a Function which take parameter list () and return double [m

f
 [1;33m┌─────┐0x00fffff8
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10000004┼─────→ [1;32m0x10000004│double function01() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10010004┼─────→ [1;32m0x10010004│double function02() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10020004┼─────→ [1;32m0x10020004│double function03() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10030004┼─────→ [1;32m0x10030004│double function04() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10040004┼─────→ [1;32m0x10040004│double function05() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10050004┼─────→ [1;32m0x10050004│double function06() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10060004┼─────→ [1;32m0x10060004│double function07() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10070004┼─────→ [1;32m0x10070004│double function08() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10080004┼─────→ [1;32m0x10080004│double function09() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌──────────┐
 [1;33m│0x10090004┼─────→ [1;32m0x10090004│double function10() │
 [1;33m│          │             [1;32m          └──────────┘
 [1;33m└─────┘
 [m
: (4) int *((*b)[10]);

我認為應該是

b is  [1;33ma Pointer to  [1;32man Array of 10 Pointer to  [1;35mint [m

 [m [1;33m┌─────┐0x00fffffc [m
 [1;33m│0x00fffff8│ [m
 [1;33m└────┼┘ [m
 [1;33m          └─┐ [m
 [1;33m              ↓ [m
 [1;32m┌─────┐0x00fffff8 [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000004┼─────→ [35m0x10000004│int 01│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000014┼─────→ [35m0x10000014│int 02│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000024┼─────→ [35m0x10000024│int 03│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000034┼─────→ [35m0x10000034│int 04│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000044┼─────→ [35m0x10000044│int 05│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000054┼─────→ [35m0x10000054│int 06│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000064┼─────→ [35m0x10000064│int 07│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000074┼─────→ [35m0x10000074│int 08│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000084┼─────→ [35m0x10000084│int 09│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m├─────┤ [m
 [1;32m│          │             [35m          ┌───┐ [m
 [1;32m│0x10000094┼─────→ [35m0x10000094│int 10│ [m
 [1;32m│          │             [35m          └───┘ [m
 [1;32m└─────┘ [m


是我誤解 解答給的意思了嗎??

b is  [1;33man Array of 10 Pointer to  [1;32ma Pointer to  [1;35mint [m

b
 [1;33m┌─────┐0x00fffff8
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x11000004┌───┐
 [1;33m│0x10000004┼─────→ [1;32m0x10000004│0x11000004┼┘   [1;35m          │int 01│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x13000004┌───┐
 [1;33m│0x10001004┼─────→ [1;32m0x10001004│0x12000004┼┘   [1;35m          │int 02│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x13000004┌───┐
 [1;33m│0x10002004┼─────→ [1;32m0x10002004│0x13000004┼┘   [1;35m          │int 03│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x14000004┌───┐
 [1;33m│0x10003004┼─────→ [1;32m0x10003004│0x14000004┼┘   [1;35m          │int 04│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x15000004┌───┐
 [1;33m│0x10004004┼─────→ [1;32m0x10004004│0x15000004┼┘   [1;35m          │int 05│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x16000004┌───┐
 [1;33m│0x10005004┼─────→ [1;32m0x10005004│0x16000004┼┘   [1;35m          │int 06│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x17000004┌───┐
 [1;33m│0x10006004┼─────→ [1;32m0x10006004│0x17000004┼┘   [1;35m          │int 07│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x18000004┌───┐
 [1;33m│0x10007004┼─────→ [1;32m0x10007004│0x18000004┼┘   [1;35m          │int 08│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x19000004┌───┐
 [1;33m│0x10008004┼─────→ [1;32m0x10008004│0x19000004┼┘   [1;35m          │int 09│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m├─────┤
 [1;33m│          │             [1;32m          ┌─────┐┌→ [1;35m0x1a000004┌───┐
 [1;33m│0x10009004┼─────→ [1;32m0x10009004│0x1a000004┼┘   [1;35m          │int 10│
 [1;33m│          │             [1;32m          └─────┘     [1;35m          └───┘
 [1;33m└─────┘
 [m
: (5) long (*fun)(int)

fun is  [1;33ma Pointer to
 [1;32m a Function which take parameter list (int) and return  [1;36mlong [m

fun
 [1;33m┌─────┐0x00fffffc
 [1;33m│0xa0fffff8│
 [1;33m└────┼┘
 [1;33m          └───┐
 [1;33m                  ↓
 [1;32m┌───────┐0xa0fffff8
 [1;32m│ [1;36mlong [1;32m func(int)│
 [1;32m└───────┘
 [m
: (6) int (*(*F)(int, int))(int);

F is  [1;33ma Pointer to
 [1;32m a Function which take parameter List (int, int) and return  [1;36ma Pointer to
 [1;35m a Function which take parameter List (int)      and return  [1;37mint [m

F
 [1;33m┌─────┐0x00fffffc
 [1;33m│0xa0fffff8│
 [1;33m└────┼┘
 [1;33m          └───┐
 [1;33m                  ↓
 [1;32m               0xa0fffff8
 [1;32m┌───────────┐
 [1;32m│ [1;36mfuncPTR [1;32m func1(int,int)│
 [1;32m└─┼─────────┘
 [1;32m    └─────┐
 [1;36mfuncPTR [1;32m         ↓
 [1;36m┌─────┐0xb0fffffc
 [1;36m│0xa1fffff8│
 [1;36m└────┼┘
 [1;36m          └─┐
 [1;36m              ↓
 [1;35m        0xa1fffff8
 [1;35m┌───────┐
 [1;35m│ [1;37mint [1;35m func2(int)│
 [1;35m└───────┘
 [m
: 解答在次頁
: (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的函式

--
 [1;37m渴望 [m飛翔在 [1;33m自由 [m的 [1;36m風 [m中,
 [1;37m期望 [m逃離這拘束的 [1;34m現實 [m,
一切都讓他隨著 [1;36m風 [m而去,
獨自躲在 [1;30m黑暗 [m的 [1;36m空氣 [m中,
 [1;33m舔舐 [m被狠狠撕裂的 [1;31m傷口 [m。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.153.167
※ 編輯: csihcs          來自: 1.163.153.167        (02/28 03:41)
※ 編輯: csihcs          來自: 1.163.153.167        (02/28 03:48)
※ 編輯: csihcs          來自: 1.163.153.167        (02/28 04:11)
※ 編輯: csihcs          來自: 1.163.153.167        (02/28 04:30)
※ 編輯: csihcs          來自: 1.163.153.167        (02/28 04:36)
 [1;37m推  [33mfengchu [m [33m:先推精巧的圖示:) 另外第四題我和csihcs大的理解相同       [m 02/28 05:11
 [1;37m推  [33mjack089452 [m [33m:先推了                                               [m 02/28 09:48


------ 文章結尾 ------

[複製網址] [開新視窗] [加到我的最愛] [檢舉短網址] [QR條碼]



服務條款 - 完全手冊 - 加入會員(免費) - 聯絡偶們 -

© PPT.cc