原创 【Tools】git,github/gitlab

文章目錄1.git1.1 下載安裝win_git軟件1.2 設置git連接github1.3 git命令上傳github1.4 減少github的commit次數1.5 連接gitlab 1.git 1.1 下載安裝win_gi

原创 【Java】JVM

當調用第一個方法時,給第一個方法劃分一段棧幀空間並壓入棧內。當這個方法執行完了將這個方法對應的棧幀出棧也就是釋放這個方法所佔用的內存。這就是棧和棧幀之間關係,一個棧內有沒有可能多個棧幀存在?有的,調用方法1,方法1間接

原创 程序編譯的過程?

程序編譯的過程中就是將用戶的文本形式的源代碼(c/c++)轉化成計算機可以直接執行的機器代碼的過程。主要經過四個過程:預處理、編譯、彙編和鏈接。具體示例如下。 一個hello.c的c語言程序如下。 #include <stdio.

原创 C和C++的區別?

1). C++是C的超集; 2). C是一個結構化語言,它的重點在於算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制),而對於C++,首要考慮的是如何構造一

原创 堆和自由存儲區的區別?

總的來說,堆是C語言和操作系統的術語,是操作系統維護的一塊動態分配內存;自由存儲是C++中通過new與delete動態分配和釋放對象的抽象概念。他們並不是完全一樣。 從技術上來說,堆(heap)是C語言和操作系統的術語。堆是操作系

原创 在C中用const 能定義真正意義上的常量嗎?C++中的const呢?

不能。c中的const僅僅是從編譯層來限定,不允許對const 變量進行賦值操作,在運行期是無效的,所以並非是真正的常量(比如通過指針對const變量是可以修改值的),但是c++中是有區別的,c++在編譯時會把const常量加入符

原创 什麼是內存泄漏?面對內存泄漏和指針越界,你有哪些方法?你通常採用哪些方法來避免和減少這類錯誤?

用動態存儲分配函數動態開闢的空間,在使用完畢後未釋放,結果導致一直佔據該內存單元即爲內存泄露。 1). 使用的時候要記得指針的長度. 2). malloc的時候得確定在那裏free. 3). 對指針賦值的時候應該注意被賦值指針需要

原创 【Notes】C/C++面試知識點總結

文章目錄1.計算機基礎1.1 C/C++內存有哪幾種類型?1.2 堆和棧的區別?1.3 堆和自由存儲區的區別?1.4 程序編譯的過程?1.5 計算機內部如何存儲負數和浮點數?1.6 函數調用的過程?1.7 左值和右值1.8 什麼

原创 宏和內聯(inline)函數的比較?

1). 首先宏是C中引入的一種預處理功能; 2). 內聯(inline)函數是C++中引用的一個新的關鍵字;C++中推薦使用內聯函數來替代宏代碼片段; 3). 內聯函數將函數體直接擴展到調用內聯函數的地方,這樣減少了參數壓棧,跳轉

原创 C++中有了malloc / free , 爲什麼還需要 new / delete?

1). malloc與free是C++/C語言的標準庫函數,new/delete是C++的運算符。它們都可用於申請動態內存和釋放內存。 2). 對於非內部數據類型的對象而言,光用maloc/free無法滿足動態對象的要求。對象在創

原创 C/C++內存有哪幾種類型?

C中,內存分爲5個區:堆(malloc)、棧(如局部變量、函數參數)、程序代碼區(存放二進制代碼)、全局/靜態存儲區(全局變量、static變量)和常量存儲區(常量)。此外,C++中有自由存儲區(new)一說。 全局變量、stat

原创 計算機內部如何存儲負數和浮點數?

負數比較容易,就是通過一個標誌位和補碼來表示。 對於浮點類型的數據採用單精度類型(float)和雙精度類型(double)來存儲,float數據佔用32bit,double數據佔用64bit,我們在聲明一個變量float f= 2

原创 C和C++中的強制類型轉換?

C中是直接在變量或者表達式前面加上(小括號括起來的)目標類型來進行轉換,一招走天下,操作簡單,但是由於太過直接,缺少檢查,因此容易發生編譯檢查不到錯誤,而人工檢查又及其難以發現的情況;而C++中引入了下面四種轉換: 1). sta

原创 函數調用的過程?

int main(void) { ... d = fun(a, b, c); cout<<d<<endl; ... return 0; } 調用fun()的過程大致如下: main()======== 1).

原创 const 有什麼用途

主要有三點: 1).定義只讀變量,或者常量(只讀變量和常量的區別參考下面一條); 2).修飾函數的參數和函數的返回值; 3).修飾函數的定義體,這裏的函數爲類的成員函數,被const修飾的成員函數代表不能修改成員變量的值,因此co