1 2 3 4 5 6 7 8 9 10 | struct { char *name; int flags; int utype; union { int ival; float fval; char *pval; } uval; |
C 語言面試時,先來個紙上測試對C的了解程度,一般只學程式語言皮毛的人,真的很少會用union ,能了解struct 就不錯了。一般軟體開發也少有使用union。其主要目的是節省記憶體空間的使用。
答案: symtab[0].uval.ival; 竟然忘了, 真的被考倒了! 太多年沒用了.
sturct 中有 name, flags, utype 及 uval 四個成員變數, uval 是 union 型態。
題目: (*ptr)[m] 與 *ptr[m] 有何不同 ? 只會一半, 又被考倒了 !
(*ptr)[m] : 已先用括號括起來, 先以先看 *ptr
*ptr[m] : 若 ptr[m] 內容存的是 pointer(指標) , 前面再加個 *, 表示取出 ptr[m] 指向位址中的值
題目: (*ptr)[m] 與 *ptr[m] 有何不同 ? 只會一半, 又被考倒了 !
(*ptr)[m] : 已先用括號括起來, 先以先看 *ptr
*ptr[m] : 若 ptr[m] 內容存的是 pointer(指標) , 前面再加個 *, 表示取出 ptr[m] 指向位址中的值
其實,可以使用sizeof() 來驗證是否有善用記憶體空間。