原创 C語言-棧與隊列

1棧的定義,特點 定義:棧(stack)是限定僅在表尾進行插入和刪除操作的線性表。 特點:先入後出,後入先出 2 棧的注意點 首先它是一個線性表,也就是說,棧元素具有線性關係,即前驅後繼關係。只不過它是一種特殊的線性表而已。

原创 C語言-函數

1 函數調用中,地址傳遞爲什麼說形參與實參佔用同樣的存儲單元 因爲實參傳的是那段地址,形參接受的也是這段地址,相同的地址,當然就是相同的存儲單元,存儲單元就是地址的意思 2程序如何實現模塊化 在程序設計過程中大多數程序要比我們之前

原创 C語言-文件操作

1.Linux下的文件 在Linux操作系統中,它對一切資源的管理都是對文件的操作。 在現代操作系統中, 要利用大量的程序和數據,由於內存容量有限,且不能長期保存,於是,人們把這些數據以文件的形式放在外存中,需要的時候再將它們調

原创 C語言-指針

1判斷指針的類型 只要把指針聲明語句裏的指針名字去掉,剩下的部分就是這個指針的類型。 (1)int*ptr;//指針的類型是int* (2)char*ptr;//指針的類型是char* (3)int**ptr;//指針的類型是i

原创 C語言-數據類型

1數據類型包含的內容: 數據的表示和對數據的加工操作。數據的全部可能表示構成數據類型的值的集合,數據全部合理的操作構成數據類型的操作集合。 2數據類型間可以進行強制轉換原因: 變量的值是變量所對應的內存區域內存放的二進制序列,

原创 多線程編程

1.線程的概念 線程是計算機中獨立運行的最小單位,運行時佔用很少的系統資源。可以把線程看成是操作系統分配CPU時間的基本單元。一個進程可以擁有一個至多個線程。它線程在進程內部共享地址空間、打開的文件描述符等資源。同時線程也有其私有

原创 進程通信(1)

1.Linux下進程間通信方式有有那些? 1)管道( pipe )及有名管道 (named pipe):管道可用於具有親緣關係進程間的通信,有名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關係進程間

原创 C語言-預處理、結構體

1.什麼是結構體 結構體是一種專門設計用來存儲不同數據類型元素集合 結構體與數組的對比: 數組:只能由多個相同類型的數據構成。 結構體:可以由多個不同類型的數據構成。 2.結構體的定義 結構體內部的元素,也就是組成成分,我們一般稱

原创 C語言-位操作技巧

1 int a = -15, b = 15; printf("%d %d\n", a >> 2, b >> 2); 因爲15=0000 1111(二進制),右移二位,最高位由符號位填充將得到0000 0011即3。-15 =

原创 進程通信(2)

1.消息隊列 消息隊列是由消息的鏈表,存放在內核中並由消息隊列標識符標識。消息隊列克服了信號傳遞信息少、管道只能承載無格式字節流以及緩衝區大小受限等缺點。 2.消息隊列結構定義 struct msqid_ds *msgque[MS

原创 C語言-線性表

1線性表基本操作 InitList(*L): 初始化操作,建立一個空的線性表L。 ListEmpty(L): 判斷線性表是否爲空表,若線性表爲空,返回true,否則返回false。 ClearList(*L): 將線性表清空。 G

原创 C語言-語句

1程序的進本結構 順序,分支,循環 2空語句 只有”;”組成的語句被稱爲空語句。什麼也不執行,可用作空循環體。 用途: 延時、方便擴充新功能 3表達式語句 表達式加分號 表達式; 4函數語句調用 函數名、實參加分號 函

原创 2017_10_13 Shell&基本數據類型

shell shell是一個命令解釋器,它爲用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可用shell來開啓、掛起、停止,甚至編寫一些程序。 shell常用系統變量 $ # :保存程序命令行參數的數目(

原创 C語言-進程控制編程

1.進程的定義 標準定義:進程是可併發執行的程序,是在一個數據集合上的運行過程。 通俗來說,硬盤上的一個可執行文件經常被稱爲程序,在Linux系統中,當一個程序開始執行後,在開始執行到執行完畢退出這段時間裏,它在內存中的部分就被

原创 C語言-運算符、表達式

1運算符分類 算數運算符 關係運算符 邏輯運算符 位操作運算符 賦值運算符 條件運算符 逗號運算符 指針運算符 求字節運算符 特殊運算符 2運算符的優先級 運算符的優先級分15等級,1級最高,15級最低。 同一優先級的