new float查询长度 c++_C/C++经典面试题
面試題 1:變量的聲明和定義有什么區別
為變量分配地址和存儲空間的稱為定義,不分配地址的稱為聲明。一個變量可以在多個地方聲明,
但是只在一個地方定義。加入 extern 修飾的是變量的聲明,說明此變量將在文件以外或在文件后面部分
定義。
說明:很多時候一個變量,只是聲明不分配內存空間,直到具體使用時才初始化,分配內存空間,
如外部變量。
面試題 2:寫出 bool 、int、 float、指針變量與“零值”比較的 if 語句
bool 型數據:
if( flag )
{
A;
}
else
{
B;
}
int 型數據:
if( 0 != flag )
{
A;
}
else
{
B;
}
指針型數:
if( NULL == flag )
{
A;
}
else
{
B;
}
float 型數據:
if ( ( flag >= NORM ) && ( flag <= NORM ) )
{
A;2
}
注意:應特別注意在 int、指針型變量和“零值”比較的時候,把“零值”放在左邊,這樣當把“==”
誤寫成“=”時,編譯器可以報錯,否則這種邏輯錯誤不容易發現,并且可能導致很嚴重的后果。
面試題 3:sizeof 和 strlen 的區別
sizeof 和 strlen 有以下區別:
? sizeof 是一個操作符,strlen 是庫函數。
? sizeof 的參數可以是數據的類型,也可以是變量,而 strlen 只能以結尾為‘0‘的字符串作參數。
? 編譯器在編譯時就計算出了 sizeof 的結果。而 strlen 函數必須在運行時才能計算出來。并且 sizeof
計算的是數據類型占內存的大小,而 strlen 計算的是字符串實際的長度。
? 數組做 sizeof 的參數不退化,傳遞給 strlen 就退化為指針了。
注意:有些是操作符看起來像是函數,而有些函數名看起來又像操作符,這類容易混淆的名稱一定
要加以區分,否則遇到數組名這類特殊數據類型作參數時就很容易出錯。最容易混淆為函數的操作符就
是 sizeof。
面試題 4:C 語言的關鍵字 static 和 C++ 的關鍵字 static 有什么區別
在 C 中 static 用來修飾局部靜態變量和外部靜態變量、函數。而 C++中除了上述功能外,還用來定
義類的成員變量和函數。即靜態成員和靜態成員函數。
注意:編程時 static 的記憶性,和全局性的特點可以讓在不同時期調用的函數進行通信,傳遞信息,
而 C++的靜態成員則可以在多個對象實例間進行通信,傳遞信息。
面試題 5:C中的 malloc 和C++中的 new 有什么區別
malloc 和 new 有以下不同:
(1)new、delete 是操作符,可以重載,只能在 C++中使用。
(2)malloc、free 是函數,可以覆蓋,C、C++中都可以使用。
(3)new 可以調用對象的構造函數,對應的 delete 調用相應的析構函數。
(4)malloc 僅僅分配內存,free 僅僅回收內存,并不執行構造和析構函數
(5)new、delete 返回的是某種數據類型指針,malloc、free 返回的是 void 指針。
注意:malloc 申請的內存空間要用 free 釋放,而 new 申請的內存空間要用 delete 釋放,不要混用。
因為兩者實現的機理不同
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的new float查询长度 c++_C/C++经典面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机英语四六级对调剂有影响吗,你知道四
- 下一篇: 服务器新手装备无限拿指令,【新手指南】服