[面試]正文複試

Posted: 2005 年 11 月 21 日 in 未分類

下午一到正文就收到一張考卷,總共有三題
1.寫出算10!的程式
2.寫一個swap兩個整數的程式
3.給一個int 指標pp,指向一個12Bytes的記憶體,前6是source address,後6是destination addess
   問說要怎樣印出前六是0x11,0x12,0x13,0x14xㄝ,0x15,0x16(大概是這樣)
我寫的答案是
1.
int i=1,result=1;
for(int i=1 ; i<=10 ; i++)
    result = result*i;
 
2.
int int_a=1, int_b=2;
swap(&int_a, &int_b);
swap(int *a, int *b)
{
    int temp;
   temp = *a;
   *a = *b;
   *b = temp;
}
 
3.
char  *p = pp;
for(int i=10; int <=5 ; i++)
    printf("%xn",*(p+i));
第3題有點小難,感覺有陷井,因為他是給int指標如果直接用會一次取4 bytes
所以要先轉形成char指標,他才會一次只取一個bytes,感覺應該是這樣@@
 
後來就進去面試,有四個主管面試,一樣先簡單介紹自己做的東西…..
然後問一些有的沒的問題
後來有一個人近來,其中一位主管叫他叫考我程式
他出了一題問我
char *a[10];
char (*a)[10];
哪裡不一樣???a是指啥
一下子把我嚇到了,在那邊說
char *a[10]; a是一個指標,指向一個char
char (*a)[10]; a是一個指標,指向一個字串
冷靜一下才比較清楚
最主要不同在於char *a[10]; 是宣告有10個指標
char (*a)[10];  這只有一個指標
呼,好險有回答出來,真哭
然後就說道這裡為止,就說我可以出去了QQ
 
晚上給佳盟請吃薑母鴨︿︿
學長,如果我有上我就請你吃羊肉爐好了^^
 
補充:
  char c;
  char *a[10];
  char (*b)[10];
  char d[10];
  a[0]=&c;
  b=&d;
  //所以b是指向指標的指標,憲宗提供 
 
 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s