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

C++筆試實(shí)例分析

時(shí)間:2020-11-22 18:28:17 筆試題目 我要投稿

C++筆試實(shí)例分析

  聲明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同

C++筆試實(shí)例分析

  編輯: 面試網(wǎng) 發(fā)布時(shí)間: 2013-10-19  第一種形式聲明了一個(gè)“結(jié)構(gòu)標(biāo)簽”; 第二種聲明了一個(gè)“類型定義”。主要的區(qū)別是在后文中你需要用“struct x1” 引用第一種, 而用“x2” 引用第二種。也就是說, 第二種聲明更像一種抽象類新—– 用戶不必知道它是一個(gè)結(jié)構(gòu), 而在聲明它的實(shí)例時(shí)也不需要使用struct 關(guān)鍵字。

  是否有自動(dòng)比較結(jié)構(gòu)的方法

  沒有。編譯器沒有簡(jiǎn)單的好辦法實(shí)現(xiàn)結(jié)構(gòu)比較(即, 支持結(jié)構(gòu)的== 操作符),這也符合C 的`低層特性。簡(jiǎn)單的按字節(jié)比較會(huì)由于結(jié)構(gòu)中沒有用到的“空洞” 中的隨機(jī)數(shù)據(jù)(參見問題2.10) 而失敗; 而按域比較在處理大結(jié)構(gòu)時(shí)需要難以接受的大量重復(fù)代碼。如果你需要比較兩個(gè)結(jié)構(gòu), 你必須自己寫函數(shù)按域比較。

  如何向接受結(jié)構(gòu)參數(shù)的函數(shù)傳入常數(shù)值

  傳統(tǒng)的C 沒有辦法生成匿名結(jié)構(gòu)值; 你必須使用臨時(shí)結(jié)構(gòu)變量或一個(gè)小的結(jié)構(gòu)生成函數(shù)。

  C99 標(biāo)準(zhǔn)引入了“復(fù)合常量” (compound literals); 復(fù)合常量的一種形式就可以允許結(jié)構(gòu)常量。例如, 向假想plotpoint() 函數(shù)傳入一個(gè)坐標(biāo)對(duì)常數(shù), 可以調(diào)用plotpoint((struct point){1, 2});與“指定初始值” (designated initializers) (C99 的另一個(gè)功能) 結(jié)合, 也可以用成員名稱確定成員值:plotpoint((struct point){.x=1, .y=2});

  怎樣從/向數(shù)據(jù)文件讀/寫結(jié)構(gòu)

  用fwrite() 寫一個(gè)結(jié)構(gòu)相對(duì)簡(jiǎn)單:

  fwrite(&somestruct, sizeof somestruct, 1, fp);對(duì)應(yīng)的fread() 調(diào)用可以再把它讀回來。但是這樣寫出的文件卻不能移植(參

  見問題2.10 和20.3)。同時(shí)注意如果結(jié)構(gòu)包含任何指針, 則只有指針值會(huì)被寫入文件, 當(dāng)它們?cè)俅巫x回來的時(shí)候, 很可能已經(jīng)失效。最后, 為了廣泛的移植, 你必須用“b” 標(biāo)志打開文件;

  移植性更好的方案是寫一對(duì)函數(shù), 用可移植(可能甚至是人可讀) 的方式按域讀寫結(jié)構(gòu), 盡管開始可能工作量稍大。

【C++筆試實(shí)例分析】相關(guān)文章:

c++筆試實(shí)例:計(jì)算s=f(f(-1.4))的值12-14

華為C++筆試題11-23

聯(lián)想C++筆試題11-23

Sony C++筆試題12-19

C++筆試實(shí)例:int *p=NULL和*p= NULL有什么區(qū)別12-19

C++筆試題目分享12-20

華為c/c++筆試題12-19

北承筆試題目(C++)12-23

聚網(wǎng)科技C++筆試題12-18