原创 【c語言】函數調用棧

我們常常會使用函數調用來實現某種操作,只知道從調用函數跳到被調函數,被調函數執行完又返回到主調函數,可能會有以下的疑問:                                                           

原创 【c語言】函數的默認參數

      在c語言中是沒有函數默認值的概念,可以利用宏來模擬參數默認值;在c++中可以爲參數指定默認值;所謂函數默認值就是當調用點沒有相對應的形參時,就自動使用默認參數,編譯器會自動把默認值傳遞給調用語句中;設置函數默認值需要注意有以下

原创 【數據結構】直接插入排序以及時間複雜度的分析

直接插入排序 直接插入排序的基本操作是將一個記錄插入到已經排好序的有序表中,從而得到一個新的、記錄數增1的有序表。   完整代碼 : #include <stdio.h> void InsertSort(int arr[],int l

原创 【Linux】I/O多路複用——select、poll、epoll的區別

I/O複用 I/O多路複用是爲了解決進程或線程阻塞到某個I/O系統調用而出現的技術,使進程不再阻塞於某個特定的I/O系統調用。 利用select、poll、epoll實現多個端口通信。I/O複用使得程序能同時監聽多個文件描述符,當某個文件

原创 C與C++的區別(3)——指針與引用

我們在學習c語言的時候,知道函數傳參有兩種,值傳遞和地址傳遞;而在C++中,多了一個引用的概念,引用就是給已存在的變量取了一個別名,編譯器不會給引用開闢新的空間,與其引用的變量共用一塊空間。   引用於指針的區別 引用:引用就是對某一變量

原创 【c++】函數調用約定

         函數的調用約定,當一個函數被調用時,參數的傳遞以及返回值以什麼樣的方式回到調用函數;函數的調用約定就是指參數和返回值是怎麼樣傳遞的,以及是由誰平衡堆棧的。 函數的調用約定主要針對三個問題:1.函數符號的生成與編譯後的名稱

原创 【c++】單例模式的實現

單例模式也稱單件模式,單子模式,是使用最廣泛的設計模式之一;意圖是保證一個類僅有一個實例,並提供一個訪問它的全局訪問點,該實例被所有程序模塊共享。 一、單例模式 用戶訪問唯一實例的方法只有getInstance()成員函數。如果不通過這個

原创 【數據結構】希爾排序

希爾排序   將原本大量記錄數的記錄進行分組。分割成若干個子序列,然後在這些子序列內分別進行直接插入排序,當整個序列都基本有序時,再對全體記錄進行一次直接插入排序。基本有序:基本有序的意思就是小的關鍵字基本在前面,大的基本在後面,不大不小

原创 【linux】目標文件、可執行文件(ELF)格式解析

ELF文件、目標文件、可執行文件的關係 目標文件是源代碼經過編譯但未進行鏈接的那些中間文件,在linux中的.o文件,它跟可執行文件的內容與結構很相似,所以一般與可執行格式採用一種方式存儲,在linux下,我們可以將他們統稱ELF文件。E

原创 C與C++的區別(2)——new和malloc的區別

一、本質區別 在C++中引入更多的關鍵字,比如:new和delete; 而malloc和free是庫函數,需要頭文件的支持;   二、申請的空間所在的位置 new關鍵字爲對象分配的空間在自由存儲區內。而molloc是從堆上分配內存; C

原创 解決missing Change-Id in commit message footer問題

每一個提交都要有一個Change-Id,出現missing Change-Id in commit message footer錯誤的原因就是change id丟失,解決辦法其實強大的git已經告訴你怎麼辦了: 1.在報錯的下面幾行,就會

原创 C和C++的區別(1)——函數重載

C和C++的區別 在C++中,函數重載就是在同一作用域下,函數名相同,而參數列表不同的一組函數;而在C語言中不支持函數重載; 這是因爲C++編譯後在庫中的名字與C語言的不同;假設某個函數的原型爲void fun(int x,int y)。

原创 git commit --amend的用法

1、用於修改上次提交。應用場景:在公司,寫了一個功能提交到老大,老大看了代碼後,眉頭一皺balabalba說一堆需要改的地方,你回來改正後,要是直接使用,git add 、git commit -m"xxxxxx"、git push那就等

原创 git pull更新不到最新代碼

(一個實習小白。。。。。。。) 今天,又發現了一個錯誤,以前爲了方便操作個分支,直接拷貝了倉庫(這樣完全爲了節省時間,拉代碼要好久),這樣就一個倉庫一個分支,比較方便,今天就遇到了一個問題,我想拉遠程的最新代碼,本地顯示已經是最新的代碼,

原创 【數據結構與算法】Hash表(散列表)、哈希函數、解決哈希衝突

哈希表 根據之前學的內容,查找一個關鍵字需要對待查序列的值一一進行比較;那在查找時能不能使用一種方式減少值的比較? 所以就有了哈希表的概念,根據設定的哈希函數及處理衝突的方法將查找表中各數據元素存儲在一段有限的連續空間中,即得哈希表,通過