原创 單向無頭鏈表的基本操作

      對於單向無頭鏈表的基本操作有創建一個鏈表,銷燬,從尾部加一個數進去,從頭加一個數進去,從尾部刪去一個,從頭部刪去一個,以及放回這個鏈表的長度。具體的實現並不難,只是一個簡單的邏輯,需要注意的點就是,在進行尾部插入和刪除的時候,

原创 進程間通信是什麼?如何實現進程間的通信

進程間通信 由於進程之間在執行時,是完全獨立執行的,所有,進程間如果需要進行通信,就需要一塊共享的區域,我們可以通過創建一個多個進程共享的區域,將所需要共享的數據放在這個共享區當中,當進程間需要通信的時候,寫數據的進程將數據寫

原创 有頭的單鏈表的基本操作

對於單鏈表的基本操作有  初始化,銷燬,以及頭部插入,尾部插入,頭部刪除,尾部刪除以及計算單鏈表的長度。 我這裏的初始化函數,因爲有一個鏈表頭,所以malloc的時候,是從第二個空間進行空間開闢的。並且在釋放的時候,也是從第二個空間開始釋

原创 Linux 文件描述符到底是什麼東西

這篇博客很長,希望你能看完,是我自己對文件描述符的一些理解,希望能幫助到你 文件描述符 什麼是文件描述符 文件描述符是操作系統在進行進程文件管理時,所引入的一種管理方法,這種管理方法是 先描述文件的一系列信息,然後再通

原创 C語言寫一個能進行文件存儲的完整通訊錄

用C語言製作一個通訊錄,這個通訊錄需要完成一系列基本的通訊錄應有的工作:增加、刪除、查找、修改、展示、退出。這個通訊錄需要做到動態的內存開闢,以及將寫好的通訊錄的內容寫入文件,每次在開始時可以調出原來寫好的內容。 至於如何實現這些功能,我

原创 如何用UDP協議搭建一個可以進行網絡通信的網絡環境

準備工作 網絡字節序 由於每一臺主機的大小端都有可能是不一樣的,我們在主機內部進行通信的時候,不會有大小端不同的問題,而在進行跨主機進行通信的時候,就會出現兩臺主機的字節序不同,爲了統一標準,在網絡中通信的數據,統一採用大端的存

原创 什麼是網絡?網絡的基本框架是什麼?

網絡是什麼 網絡的誕生 在計算機剛剛誕生的時候,由於人們如果對同一個文件進行操作的時候,需要甲先操作完,然後人工的拷貝給乙,這期間,耗費了很多的時間和精力,所有,爲了使 甲在操作完文件後,可以直接發給乙,或者,直接同步給乙,網絡

原创 進程間通信

進程間通信 由於進程之間在執行時,是完全獨立執行的,所有,進程間如果需要進行通信,就需要一塊共享的區域,我們可以通過創建一個多個進程共享的區域,將所需要共享的數據放在這個共享區當中,當進程間需要通信的時候,寫數據的進程將數據寫

原创 深度解析可變參數

在函數中存在函數的參數未知的情況,而可變參數就是用來解決這一問題的。 用下面兩個例子來說明可變參數的問題      

原创 二叉樹的層序遍歷

如果想讓二叉樹實現層序遍歷並進行打印的話,我們需要用到一個隊列的性質。隊列因爲可以實現先進隊列的先出,所以我們就可以讓二叉樹的每一層一次進入隊列,這樣,在對隊列的元素進行出隊操作,然後打印,這樣,所得到的就是一個層序遍歷的二叉樹了。 我做

原创 C++基礎(1)

        命名空間(namespace):通過命名空間來限制變量的作用域,通過這樣的作用域的限制,避免了命名上的衝突,函數和變量通過 命名空間的不同,會在內存中存儲的時候,形成不同的名字,這樣,就避免了各種各樣的命名衝突。     

原创 鏈式二叉樹的7種遍歷方式

在說鏈式二叉樹的遍歷之前,我們先來說一下如何創建一個鏈式二叉樹。創建一個鏈式二叉樹,需要一個已知的字符串,這個字符串必須支持創建二叉樹的規則。比如: 我們通過遞歸來實現二叉樹的創建,開始先向左走,如果遇到#,就返回,然後向右走,直到遇到#

原创 C語言製作一個完整通訊錄

用C語言製作一個通訊錄,這個通訊錄需要完成一系列基本的通訊錄應有的工作:增加、刪除、查找、修改、展示、退出。這個通訊錄需要做到動態的內存開闢,以及將寫好的通訊錄的內容寫入文件,每次在開始時可以調出原來寫好的內容。 至於如何實現這些功能,我

原创 計算機大小端以及大小端查看

        數據在計算機中存儲的時候,分爲大端存儲和小端存儲,每個計算機的大小端存儲都不同,爲了瞭解自己的機器中的大小端類型,可以通過很多方法查看。這裏我們主要講解兩種查看大小端的方法。 那麼到底什麼是大小端呢?        大端存

原创 C指針詳細講解(幫助理解)

指針,是一種數據類型,是用來存儲地址的數據類型。 我們可以通過定義指針變量,然後給這個指針變量中存儲地址,然後再通過指針來訪問這個地址所對應的內容。 上面的是指針的基本感念,幾乎所有的C語言學習者都會在書籍中看到這樣的概念,但是並不會詳細