1、C++招聘筆試--C++中的C

面試1 C++和C的區別?

C只是C++的一個子集,C++在C的基礎上增加了類和模板類型,一方面強化了C的過程化處理,引入了重載、異常處理等,另一方面更是擴展了面向對象設計的內容,如類、友元、繼承、虛函數和模板等。
從變成的角度上,C是一種結構化編程語言,而C++是面向對象的編程語言,C++程序設計首要考慮的是如何構造一個對象模型。之所以說C++比C更加先進,是因爲“設計這個概念已經被融入到了C++之中”。

面試2 const在C和C++的區別

const在C和C++中略有不同,在C中,C編譯器不把const常量看成一個編譯期間的常量,爲其分配內存空間。

 const int n=10;
 int a[n];  

//編譯時候不能確定n的值,將其看成0;C編譯:“connot allocate an arry of constant size 0”
//在C++之中上述程序沒有錯誤,說明C++編譯器在編譯時候知道const常量的值。

面試3 volatile關鍵字的含義和作用以及應用場景

volatile關鍵字的含義是“易變的”,它高速編譯器volatile變量是隨時可能發生變化的,並且高速編譯器與volatile有關的運算不要進行編譯優化。這樣每一次都會對其取值,不會被優化。
用volatile關鍵字修飾的變量確保編譯器不對其代碼進行優化,且要求每次直接從內存中讀值。
一個定義爲volatile的變量是說這個變量可能會有意想不到的改變,在用到這個變量時候必須每次都小心重新地從內存中讀取這個變量的值,而不是使用保存在cache或者寄存器裏的備份,使用volatile變量的幾個實例:
1、並行設備的硬件寄存器(如狀態寄存器)
2、一箇中斷服務子程序中會訪問到的非自動變量。
3、多線程應用中被幾個任務共享的變量。

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