20200406_類型安全

20200406_類型安全

每日小知識

使用everything搜索文件時,前面添加【exe:】可以直接搜索可執行程序,如【exe:qq】。

一、相關術語

  • 類型安全
    類型是否安全,取決於它能否在使用中被外部轉換,例如在C語言中int可以隱式轉換爲double,double可以強轉爲int,這都是不安全的。

二、筆試題

1、#define DOUBLE(x)x+x, i=5*DOUBLE(5);求i的值
答:宏只是符號替換,沒有優先級,所以是5*5+5=30。

2、C++是不是類型安全的?
答:不是。通過reinterpret_cast強制轉換兩個不同類型的指針。

3、main函數執行以前,還會執行什麼代碼?
答:main調用之前,還會調用【全局對象】的構造函數。

4、哪些情況只能用initialization list而不能用assignment?
答:當類中含有const、reference成員變量;基類的構造函數都需要初始化列表【initialization list】。

擴展筆試題:若存在15×4=112,則系統採用的是幾進制?(騰訊2011)
答:六進制。方法:假設爲A進制,把15×4=112按權展開就是:
15 = 1×A1 + 5×A0
4 = 4×A0
112 = 1×A2 + 1×A1 + 1×A0

換成等式:
(A+5)×4 = A2 + A + 2
A2 - 3A - 18 = 0
(A - 6)(A + 3) = 0

因此A有兩個值6或-3,但進制不存在負數,所以結果爲【六】進制。

驗證一下:15轉換十進制後是【11】,4轉換十進制後是【4】,11×4=44,112轉換十進制後是【44】。

知識擴展

C++的四種類型轉換。

本文歸類

建議歸類到【C++】。

明日計劃

1、描述內存分配方式以及它們的區別。
2、struct與class的區別?
3、當類A中沒有任何成員變量與成員函數時,sizeof(A)的值是多少?

參考文獻:

《C++筆試面試寶典2011版.docx》

如何在markdown中打出上標、下標和一些特殊符號
https://www.jianshu.com/p/80ac23666a98

今日收藏:

若存在15×4=112,則系統採用的幾進制?_虎課網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章