原创 向單向鏈表中部插入節點

構造一條含有兩個節點的單向鏈表:學生A,學生B 單向鏈表的某一節點後插入,知道此節點的指針域next即可 例如向節點A後插入,節點C:     C.next = A.next; //A的下一個地址,就是B的地址;C連接B     A.ne

原创 刪除單向鏈表的最後一個節點

    具體操作: 1、封裝一個生成鏈表的函數(createlist),一個遍歷並打印鏈表的函數(printlist),一個刪除鏈表最後節點的函數(deletelist需要判斷是否只剩1個節點); 2、生成一個包含5個節點的單向鏈表;

原创 單向鏈表新增節點之頭插法(接上一篇尾插法)

使用“頭插法”在單向鏈表的頭部插入新的節點 與尾插法的區別是:只需要定義pHead(指向頭部節點首地址)即可,不用定義pTail,更簡單 不變的還是中間指針“pNode”在傳遞新的節點地址!!!   /* *copyright(c)

原创 鏈表新增節點之單向鏈表尾部插入新增節點

保持頭部節點首地址不變(pHead始終指向頭部節點首地址),更新尾部節點首地址(pTail)的方法 詳見註釋 /* *copyright(c) 2018,HH *All rights reserved. *作 者:HH *完成日期:20

原创 C++基礎概念

1、頭文件形式的不同 頭文件的差別 C C++ stdio.h iostream math.h cmath string.h cstring stdlib.h cstdlib   2.1 新增動態內存分配運算符 2.2 新增作用域運算符

原创 C語言中的格式字符和轉義字符,所有指針變量佔4個字節

1、格式字符   格式說明由“%”和格式字符組成,如%d%f等。它的作用是將輸出的數據轉換爲指定的格式輸出。 格式說明總是由“%”字符開始的。 釋義 格式字符 表示 pointer %p 以16進制形式輸出內存地址 decimalism

原创 彙編準備-20190610

一、CPU的三類總線 地址總線:CPU是通過地址總線來指定存儲單元的;地址總線的寬度決定了可尋址的存儲單元大小;寬度爲N的地址總線,對應的尋址空間爲2的N次方。 數據總線:CPU與內存或其它器件之間的數據表傳送是通過數據總線來進行的;數據

原创 Cortex-M MMU內存管理單元和 Linux

  一、Cortex-M的定位 二、內存管理單元 內存管理單元簡稱MMU,它負責虛擬地址到物理地址的映射,並提供硬件機制的內存訪問權限檢查。 在多用戶、多進程的操作系統中,MMU使得各個用戶進程都有獨立的地址空間。 任何微控制器都存在

原创 ARM指針寄存器 -程序計數器PC、堆棧指針SP

堆棧是一種具有“後進先出”(LIFO---Last In First Out)特殊訪問屬性的存儲結構。堆棧一般使用RAM 物理資源作爲存儲體,再加上LIFO 訪問接口實現。 堆棧的實現方法:     在隨機存儲器區劃出一塊區域作爲堆棧區

原创 Flash讀寫操作常用函數及示例-20180921

1、 memcpy() 描述:C 庫函數 void *memcpy(void *str1, const void *str2, size_t n)  從存儲區 str2 複製 n 個字符到存儲區 str1。 參數: str1 -- 指向用

原创 Nand Flash基礎

另一篇參考:https://blog.csdn.net/wlwl0071986/article/details/40051755 1. 硬件特性: 【Flash的硬件實現機制】   Flash全名叫做Flash Memory,屬於非易失性

原创 (原創)CRC計算流程分析(RefIn,Init,RefOut,XorOut)

CRC的計算流程 以此CRC計算程序爲例, 1、輸入:原數據是ASCII碼的“A”,對應二進制數據“0100 0001” 2、選擇校驗方式,以CRC-4/ITU爲例,多項式爲x4+x+1對應二進制:10011 3、參數Info 1)N

原创 位運算

1、移位運算符 左移、右移爲數據轉換爲二進制後的整體移位,例如下程序: 定義短整型無符號數n=3,(佔2字節),即0000 0000 0000 0011 移位1時,0000 0000 0000 0110=6; 移位2時,1100=12;

原创 鏈表初步

1、鏈表初步 /* *copyright(c) 2018,HH *All rights reserved. *作 者:HH *完成日期:2018年9月4日 *版本號:v1.0 * *問題描述:鏈表初步 *輸入描述:; *程序輸出: */

原创 野指針與結構體成員指針,動態分配存儲空間

1、野指針舉例 例1:明顯的野指針,直接賦值 #include <stdio.h> int main() { int a; int *p; *p=10;//錯誤來源與此處 printf("%d %d\n"