原创 有趣的for循環
#include <stdio.h> int main() { int i = 0; for(i = 0, printf(" First = %d", i);i<10, printf(" Second = %d",
原创 初識C++之繼承
1、何爲繼承 C++中所謂繼承,就是在一個已存在類的基礎上創建一個新的類,新類獲得已存在類的部分特性(爲什麼是部分特性,後面會講到)。已存在類被稱爲基類(Base Class)或父類(Father Class),新建類被稱爲派
原创 初識C++之剖析const與#define
1、 編譯器處理方式不同 #define是一個宏定義命令,它是在預處理階段就進行了替換; const修飾的是一個編譯時常量,它是在編譯階段處理的。 2、 類型和安全檢查不同 #define定義的標識符僅僅是產生
原创 求鏈表相交時的交點(C語言)
//鏈表相交時的交點 PSListNode IntersectionNode(PSListNode pL1, PSListNode pL2) { int count1 = 0; int count2 = 0; PS
原创 求兩個已排序單鏈表中相同的數據(C語言)
PSListNode ByeNode(DataType data) { PSListNode pNewNode = (PSListNode)malloc(sizeof(struct SListNode)); if (NUL
原创 判斷兩個鏈表是否相交,若相交,求交點。(假設鏈表可能帶環)【升級版】(C語言)
int IsListCroseWithCycle(PSListNode pL1, PSListNode pL2) { PSListNode pMeetNode1 = HasCycle(pL1); PSListNode pM
原创 Linux權限的簡單剖析
一、權限是什麼 權限(privilege)是指某個特定的用戶具有特定的系統資源使用權力。舉個簡單的例子,夏日炎炎,你看到路邊有賣西瓜的,你想要吃西瓜,你就得買它,買它其實就是獲取你對西瓜的使用權限,買了它,你就可以大快朵頤了。 二、Li
原创 二級指針、數組指針、二維數組、指針數組作爲函數形參時可傳入的實參
1、傳參規則: a.當二級指針作爲函數形參時,能作爲函數實參的是二級指針,指針數組,一級指針的地址 b.當數組指針作爲函數形參時,能作爲函數實參的是二維數組,數組指針 c.當二維數組作爲函數形參時,能作爲函數實參的是二維數組,數組指針
原创 C語言extern與static修飾變量
extern和static在C語言裏面的作用這裏就不做過多的闡述了,下面直接通過一個小程序來看一看他們修飾的變量的特性。 #include <stdio.h> int count = 3; int main() { int i
原创 判斷兩個鏈表是否相交,若相交,求交點。(假設鏈表不帶環)(C語言)
int IsListCrose(PSListNode pL1, PSListNode pL2) { if ((NULL == pL1) || (NULL == pL2)) { return 0; }
原创 淺析Linux開發工具之gcc/g++
在windows開發平臺,我們用慣了vc、vs等IDE(集成開發環境),在編譯好源代碼之後,按下相應按鈕,IDE就會爲我們完成編譯,鏈接的過程。然而在Linux平臺下,卻沒有這麼方便的開發環境,很多事情都需要我們親力親爲,爲此我們要了解兩
原创 逆置/反轉單鏈表(C語言)
1、逆置鏈表:前插法 void ReverseList(PSListNode* pHead) { if (NULL == *pHead) { return; } else { //創建一個新的空鏈
原创 單鏈表排序(冒泡排序)(C語言)
優化版: void SortList(PSListNode pHead) { if (NULL == pHead) { return; } else { int fl
原创 判斷單鏈表是否帶環?若帶環,求環的長度?求環的入口點?(C語言)
PSListNode HasCycle(PSListNode pHead) { if ((NULL == pHead) || (NULL == pHead->pNextNode)) { return NUL
原创 查找單鏈表的中間節點,要求只能遍歷一次鏈表(C語言)
PSListNode FindMidNode(PSListNode pHead) { if (NULL == pHead) { return NULL; } else {