国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

sun 的一個(gè)面試題

時(shí)間:2024-09-04 22:24:44 綜合指導(dǎo) 我要投稿
  • 相關(guān)推薦

sun 的一個(gè)面試題

  •   作者:czzhou | 來(lái)源:網(wǎng)友博客 | 發(fā)布時(shí)間:2007-05-16 | 點(diǎn)擊:0

    sun 的一個(gè)面試題

  •   /* file1.c */

  •   char buff[128];

  •   /* file2.c */

  •   extern char *buff; /* Notice: extern char buff[] */

  •   int main()

  •   {

  •   *buff = a;

  •   return 0;

  •   }

  •   結(jié)果如下:

  •   $ gcc file1.c -c

  •   $ gcc file2.c -c

  •   $ gcc file1.o file2.o -o ff

  •   $ ./ff

  •   Segmentation Fault

  •   問(wèn),為何有這個(gè)結(jié)果?

  •   我試了一下,在file2中換成extern char buff[]就可以,

  •   但不知道為什么了..

  •   論壇上的一種解釋:

  •   ---------------------

  •   數(shù)組和指針本來(lái)是完全不同的東西

  •   數(shù)組里面放的是數(shù)組元素的值, 指針?lè)诺氖且粋(gè)地址

  •   編譯器為了處理起來(lái)方便,經(jīng)常把數(shù)組當(dāng)成指針處理

  •   比如:

  •   int buf[5]={0};

  •   int *p = buf;

  •   這個(gè)時(shí)候編譯器知道buf是一個(gè)數(shù)組

  •   所以會(huì)把數(shù)組的地址而不是它的內(nèi)容傳給p指針

  •   但是如果數(shù)組是在另一個(gè)編譯單元(編譯器對(duì)每個(gè)編譯單元的處理是獨(dú)立的)

  •   指針p它不知道自己指向的是一個(gè)數(shù)組

  •   鏈接的時(shí)候也沒(méi)有buf是一個(gè)數(shù)組的信息

  •   所以最后鏈接的時(shí)候, p鏈接的是buf的內(nèi)容而不是它的地址

  •   我在linux下的實(shí)驗(yàn)結(jié)果

  •   ---------------------------------

  •   在file1.c里邊

  •   char buf[ 128 ] = {0x10, 0x20, 0x30, 0x40};

  •   在file2.c里邊

  •   extern int buf// 注意這里強(qiáng)制把file1.c里邊的char buf轉(zhuǎn)換成整形

  •   int main()

  •   {

  •   printf("buf = %x\n", buf );

  •   }

  •   則輸出的結(jié)果就是

  •   buf = 40302010

【sun 的一個(gè)面試題】相關(guān)文章:

SUN認(rèn)證11-12

面試題精選02-18

分享面試題目 教育職業(yè)面試題11-20

熱門就業(yè)行業(yè)面試題精選:編輯行業(yè)面試題!11-19

Microsoft 面試題11-19

蘋果 面試題11-19

熱門就業(yè)行業(yè)面試題精選 銷售行業(yè)面試題11-20

熱門就業(yè)行業(yè)面試題目精選:行政行業(yè)面試題11-20

銀行招聘面試題11-26

經(jīng)典面試題 及答案分析11-20