原创 數據結構——棧的學習

一、什麼是棧? 棧是限制在一端進行操作(插入、刪除)的線性表;我們俗稱爲堆棧;只不過是一種特殊的線性表,有順序棧、也有鏈式棧二、棧的特點 具有先進後出的特點,即先進棧的數據後出棧(LIFO);入棧出棧可交替進行;對於特點1、2經常出

原创 關於學習getchar()和scanf()時問題

一、getchar()函數: getchar()函數的原型爲 int getchar(void):該函數不帶形參,返回值爲int型,成功時,返回值爲字符的ASCII碼,出錯是爲-1.getchar()函數只對字符起作用,在stdio.h

原创 linux線程學習(1)

什麼是線程及爲什麼要有線程? 有時又稱輕量級進程,程序執行的最小單位,系統獨立調度和分派cpu的基本單位,它是進程中的一個實體。一個進程中可以有多個線程,這些線程共享進程的所有資源。 進程出現了很多弊端,一是由於進程是資源擁有者

原创 數據結構——隊列的學習

一、什麼是隊列 隊列實際上就是隻能在一端插入(隊尾),在另一端(隊頭)刪除(出隊)的特殊線性表;二、隊列特點 只允許在一端進行插入操作,一端進行刪除操作,即入隊、出隊。有先進先出(FIFO)的特性;我們熟知的鍵盤緩衝區就用隊列實現的

原创 uboot移植第二天——代碼分析(2)

今天是uboot移植學習第二天,通過csdn博客記錄自己的學習過程,希望通過這個方法,使自己所學的知識得到複習和擴展,總結經驗發現不足,也希望自己的博客能夠給人啓發,疑問的到解決。 uboot中start.S相關代碼分析 這次主要

原创 小題目練習

設score數組中存儲8名同學的C語言成績,字符串數組name中存儲同學們的姓名。這兩個數組中,每名同學的姓名與成績的下標要始終保持一致(例如name[i]和score[i]表示同一位同學(下標爲i)的姓名和C語言成績,否則會張冠李戴)。

原创 數據結構——遞歸學習

一、遞歸函數定義 在高級語言的學習中,函數調用自己和調用其他函數並沒有本質的區別,函數直接或者間接調用自己(函數本身)就稱該函數爲遞歸函數;二、遞歸函數的特點 遞歸函數必須含有結束條件否則會陷入死循環;遞歸比迭代會消耗大量的時間和內

原创 linux線程學習(4)

線程的同步 1. 條件變量 提供線程之間的一種通知機制,當某一條件滿足時,線程A可以通知阻塞在條件變量上的線程B,B所期望的條件已經滿足,可以解除在條件變量上的阻塞操作,繼續做其他事情。 我們需要這種機制,當互斥量被鎖住以

原创 uboot移植第五天——ldr和adr的用法

ldr命令語法 ldr有兩種用法,分別是正常指令和僞指令 正常指令 ldr{條件} 目的寄存器 ,<存儲地址> - ldr r0 ,0x12345678 - 將地址爲0x12345678的存儲單元中的值存入r0寄存器

原创 數據結構——二叉樹學習

什麼是樹 樹的定義:樹是n個(n>=0)有限節點組成一個具有層次關係的集合。 根及子樹:在任意一個非空樹中,有且僅有一個特定的稱爲根的結點,當n>1時,其餘結點又可以分爲m(m>0)個互不相交的有限集T1,T2,…Tm,其中每一

原创 linux進程間的通信

什麼是進程間通信? 進程間通信就是在不同進程之間傳播或交換信息,那麼不同進程之間存在着什麼雙方都可以訪問的介質呢?進程的用戶空間是互相獨立的,一般而言是不能互相訪問的,唯一的例外是共享內存區。另外,系統空間是“公共場所

原创 getchar()函數與scanf()函數相關知識點

【項目1-字母及其編碼】編寫一個程序,從鍵盤上輸入一個小寫字母,顯示這個小寫字母及它所對應的大寫字母以及它們的ASCII碼值。 #include <stdio.h> #include <stdlib.h> int main() {

原创 linux線程學習(2)

線程的生命週期 1、當c程序運行時,首先運行main函數。在線程代碼中,這個特殊的執行流被稱作初始線程或者主線程。你可以在初始線程中做任何普通線程可以做的事情。 2、主線程的特殊性在於,它在main函數返回的時候,會導致進程結束

原创 uboot移植第一天——代碼分析(1)

uboot版本 :u-boot-1.1.6 編譯器 :gcc version 3.4.5 開發板 :jz2440 .globl _start _start: b reset *跳轉到reset執行* 1、set t

原创 uboot移植第四天——代碼分析(4)

這次的分析主要是針對uboot的第二階段的分析,之前都是對第一階段的分析,這個階段都是人爲劃分的,你也可以不這樣劃分。 第二階段入口 ldr pc, _start_armboot _start_armboot: .word st