亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

優(yōu)視科技一道指針筆試題目

時(shí)間:2020-11-01 10:28:05 筆試題目 我要投稿

優(yōu)視科技一道指針筆試題目

  今天晚上參加優(yōu)視(UC)的筆試,我報(bào)了一個(gè)c++的軟件開發(fā)工程師,考前我就想這次一定會(huì)考指針題目,所以事先就看了很多關(guān)于指針的內(nèi)容,果然,還是出了一道指針,并且包含有結(jié)構(gòu)體struct,題目是這樣的,前提是在一臺(tái)i386的機(jī)子上運(yùn)行

優(yōu)視科技一道指針筆試題目

  #include

  struct a

  {

  int b;

  short*pd;

  char str[32];

  };

  a st[16];

  int _tmain(int argc, _TCHAR* argv[])

  {

  char * p= (char*)(st[2].str+32);

  cout<

  return 0;

  }

  問(wèn)你輸出結(jié)果是什么?

  哇!!!!,看到這里是不是感覺(jué)到有點(diǎn)頭大呢!雖然考前看了很多指針的東西,但是到這里卻還是頭大,好了,接下來(lái)我就認(rèn)真分析一下這道題目:

  1> 看準(zhǔn)前提條件,這是一臺(tái)I386的機(jī)子,這個(gè)條件很用,它說(shuō)明了我們運(yùn)行平臺(tái)是一個(gè)32位機(jī),因此int類型占用4個(gè)字節(jié)32位。

  2> 接下來(lái)我們分析一下struct類型,前面一個(gè)int b, 占用4個(gè)字節(jié),中間一個(gè)short類型占用兩個(gè)字節(jié),后面一個(gè)char類型的數(shù)組,當(dāng)然是占用32個(gè)字節(jié),到這里你認(rèn)為分析完了嗎,很不幸,如果你只分析到這一步,肯定得不到正確結(jié)果,現(xiàn)在讓我們來(lái)想一想struct類型在編譯之后數(shù)據(jù)存放地址的對(duì)齊問(wèn)題,這涉及到一個(gè)原則就是sizeof(struct_name)一定是結(jié)構(gòu)體中最長(zhǎng)類型的'整數(shù)倍,即sizeof(a)%4==0,這樣計(jì)算則可知sizeof(a)==40,這種對(duì)齊方式是為了計(jì)算機(jī)計(jì)算時(shí)的方便,是編譯器性能優(yōu)化的一部分,具體細(xì)節(jié)你可以去google一下,上面的計(jì)算方式很簡(jiǎn)單,但是并不通用。

  3>經(jīng)過(guò)第二步的分析我們知道a的大小為40個(gè)字節(jié),接下來(lái)我們分析st[2].str+32,這里str[2].str取出來(lái)的是一個(gè)地址,故st[2].str的偏移量(相對(duì)于str[0])為80,而str[2].str相對(duì)str[2]偏移了8個(gè)字節(jié),故str[2].str的相對(duì)偏移量為88,加上32之后變?yōu)槠屏繛?20.、

  4>由3的分析知指針p現(xiàn)在指向的地址相對(duì)偏移量為120,故p-((char*)(st)) 為120,這是由于(char*)st指向 數(shù)組開始地址,由于初始化的st為空,幫指針指向內(nèi)容為空,故p-((char*)(st))=120.

【優(yōu)視科技一道指針筆試題目】相關(guān)文章:

優(yōu)納科技軟件測(cè)試面試題目11-19

優(yōu)捷Java開發(fā)工程師筆試題目11-17

上海中網(wǎng)科技筆試題目11-19

科技企業(yè)最怪異筆試題目11-17

大唐和亞信科技筆試題目12-03

藍(lán)盟科技面試筆試題目11-16

中國(guó)移動(dòng)網(wǎng)優(yōu)中心的筆試題目08-29

酷瑞(上海)網(wǎng)絡(luò)科技筆試題目11-19

深圳訊呼科技有限公司筆試題目11-15