<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          看看大疆的C語言面試題

          共 1321字,需瀏覽 3分鐘

           ·

          2020-08-12 20:30

          慣例,這筆試題也是一個(gè)讀者朋友發(fā)給我的,簡單看了下,并不覺得這是一個(gè)非常困難的題目,最近是校招準(zhǔn)備的時(shí)候,很多人給我說發(fā)面試題對大家有幫助。

          這個(gè)題目面試官強(qiáng)調(diào)了這個(gè)跑在64位系統(tǒng)下。

          代碼如下:

          #define mal(x,y) (x*y)int main(){ int i = 3; int a; char **b[5][6]; a = mal(i++, sizeof(b) + 5); printf("%d", a); return 0;}

          怎么確定指針大???

          我們有必要討論下這個(gè)問題,指針的大小,既然要討論指針的大小,就要說下,指針是什么東西,看我之前文章的人應(yīng)該都知道,指針就是地址,地址那就和機(jī)器的地址線「有不同意見可以留言」有關(guān)系。

          如果是16位機(jī)器,我們需要保存一個(gè)地址就需要2個(gè)字節(jié),所以一個(gè)指針的大小就是2bytes. 如果是32位機(jī)器,我們需要保存一個(gè)地址就需要4個(gè)字節(jié),所以一個(gè)指針的大小就是4bytes. 如果是64位機(jī)器,我們需要保存一個(gè)地址就需要8個(gè)字節(jié),所以一個(gè)指針的大小就是8bytes.

          然后我們再討論下,我們平時(shí)說的32位機(jī),64位機(jī),我們指的是它的地址線個(gè)數(shù)還是數(shù)據(jù)線個(gè)數(shù)呢?

          提醒下

          我們平時(shí)在64位機(jī)上的指針大小也是4個(gè)字節(jié),主要是為了兼容32位的機(jī)器,如果真的想讓指針在64位系統(tǒng)機(jī)器占用8個(gè)字節(jié),需要做某些設(shè)置。

          所以你覺得上面的程序輸出啥?

          我們可以先看看這個(gè)代碼輸出了啥

          #include "stdio.h"
          int main(){ int i = 3; printf("%d\n",i++*3+1); return 0;}

          這個(gè)涉及考察 「++i」和「i++」在執(zhí)行順序。

          輸出:

          10
          --------------------------------Process exited after 0.08891 seconds with return value 0請按任意鍵繼續(xù). . .

          我們展開上面的代碼

          a = mal(i++, sizeof(b) + 5);

          展開

          a = i++*sizeof(b)+5;

          因?yàn)槲覀冊?2系統(tǒng)里面,sizeof(char**) ?= 4

          i++*sizeof(b)+5

          3 * 4 * 5 * 6 + 5

          輸出:

          365--------------------------------Process exited after 0.1062 seconds with return value 0請按任意鍵繼續(xù). . .

          面試的時(shí)候怎么說?

          如果面試的時(shí)候,你能把這個(gè)過程說出來給面試官說清楚,并且能講提到雖然是64位系統(tǒng),但是因?yàn)樾枰嫒?2位程序,指針的大小還是 4字節(jié)的,當(dāng)你講到這里,面試官不知道有多喜歡你了。



          ? 推薦閱讀:
          ? ??專輯|Linux文章匯總
          ? ??專輯|程序人生
          ? ??專輯|C語言


          嵌入式Linux
          微信掃描二維碼,關(guān)注我的公眾號?


          瀏覽 126
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  76人少妇精品导航 | 激情五月丁香五月 | 国内综合在线 | 三级色网 | 国产三级精品在线 |