1、引用和指標的區別
1.1 引用不能為NULL
1.2 引用必須要初始化
1.3 引用初始化後,不可指向其他對象
1.4 作為參數傳遞的時候,不會生產形參。返回引用的時候,不會產生臨時變數。
const 指標也有可能產生野指標。
引用具有指標的效率,也具有方便性和直觀性。
2、區別函數重載可以是
參數類型(整形、實型、字元型等)
參數個數
但不能是傳回型別
3、C++和C定義結構的分別是什麼。
Clanguage的結構僅僅是資料的結合
Cplusplus的struct和class其實具備幾乎一樣的功能,只是預設的訪問屬性不一樣而已。
4、如何判斷一個變數是有符號數還是無符號數
4.1 利用了無符號數和有符號數相減結果為無符號數的性質。
#include<stdio.h>
int main()
{
//unsigned int a = 100; //待判斷數
int a = 100;
int b = -1; //參照數
if(a<0)
{
printf("有符號數");
}
else
{
if(b-a>0)
printf("無符號數");
else
printf("有符號數");
}
return 0;
}
4.2. 利用函數重載
void f(int val)
{
std::cout << "singned" << std::endl;
}
void f(unsigned int val)
{
std::cout << "unsigned" << std::endl;
}
4.3. 通過改變符號位判斷
把A進行一個位元運算,將最高位置1,判斷是否大於0
A = A|(1 << 31);
if(A > 0)
printf("unsigned");
else
printf("signed");
5、庫函數調用和系統調用區別何在
系統調用由作業系統提供,庫函數是編譯器
6、 檢測鏈表中是否有環
用兩個指標,一個的步長為 1,另外一個的為 2,從表頭開始一起往前走,如果相遇,表明有環路,否則就是沒有了。