原创 有趣的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 {