添物不花錢學計算機及編程(預備篇)

打開今日頭條,查看視頻精彩內容

C語言介紹

C語言基本是每個編程人員必學的一面語言,很好掌握,是理解編程的關鍵。很多編程語言基於其編寫或者基於此語言的衍生品編寫。

C語言是人機交互的一個基礎語言之一,雖然是之一,單一般其實就是唯一。

偶爾用彙編

其他非C的我沒見過,理論上是存在的。沒有C之前大家用的,有了C之後估計就少了。

有了計算機操作基礎,可以學習編程了,推薦從C語言開始學習,使用這本書進行學習《C程序設計語言》,此書是C語言的作者編寫就知道是多麼的權威了,同時此書有英文版本《C程序設計語言(英文版)》,建議都買了學習,畢竟作為計算機學生,英文不好是不行的,很多國外的先進的東西都是英文的。另外也有一遍習題解答,也同時買了。裡面的題目都做一遍,編程水平不會差。如果想繼續提高C語言的水平,可以看看其他相關圖書,比如《C指針》等一堆。

參考圖書:C語言的圖書比較多,一般國外的都是精品,國內的基本就算了。一本書很難學好,多讀些圖書吧。下面也只是冰山一角。還有很多就不一一列舉。基本噹噹四星以上的都可以買了看看。

參考視頻學習網站:

1 玩轉 C語言 基礎課堂

2 C語言/C++學習指南 (語法篇) 入門到精通(打算開發Windows看看,Linux的參考)。

3 C語言也能開發網站(高級課程,而且比較高級,長個見識看看)。

4 計算機專業的課程體系,裡面有個C語言程序設計。

參考資料:

1 http://www.cprogramming.com/里有個c-tutorial。

2 高質量C++/C編程指南 林銳 博士

學的更好點的,可以參考github上的C項目代碼看看。比較出名的推薦幾個:

1 https://github.com/antirez/redis

2 https://github.com/nginx/nginx

可以上網搜索GCC: The Complete Reference等內容查看學習。

上面的內容,如果都學好了,基本算入門,您可以自己學習了,師父領進門,修行靠個人了。

C語言的靈魂-指針

指針

一個變數存放一個變數的地址(A point is a variable that contains the address of a variable)

指針的指針

指針函數

函數指針

很難學,但是希望你學好!

很難學,但是希望你學好!

很難學,但是希望你學好!

如何檢驗學習效果?

神一樣的指針:

int *p;

一個指向整型數據的指針。

int **p;

一個指針的指針,它指向的指針指向一個整型數據。**p 是 int 類型,所以 *p 是int *類型,即*p是一個指向int的指針,所以p是一個指向int的指針的指針。

int *p[10];

一個有10個指針的數組,該指針指向整型數據。p[10] 的類型是 int *,所以 用type 替換 int *,也就是 type p[10],即p中每個元素都是type類型。

int (*p)[10];

一個指向有十個整型數據數組的指針。()是為了當一個整體看待,所以用val替換(*p),上式變為int val[10],所以*p 相當於數組名(即數組的首地址),所以p是一個指向數組(該數組包含10個Int數字)的指針。

int * p(int);

就一個函數(不是函數指針),該函數有一個整型參數,返回值為一個指向整型的指針

int (*p[10])(int);

一個有十個指針的數組,該數組中的指針指向一個函數,該函數有一個整型參數並返回一個整型數。根據p[10]是一個函數指針,所以p中每個元素都是一個函數指針。

int (*p)(int);

定義了一個參數為int,返回值為int的函數指針,函數指針名是p。如果初始化了 p , 則可以通過 p( int ) 調用函數。

代碼流程

整個流程要清楚

編碼

編譯

執行

打包

安裝

另外就是看開源項目源碼,是否能夠完全看懂並修改。

比如Nginx,Redis等

在我們課程系列的操作系統有個GeekOS實驗,也可以檢驗。

GeekOS是不錯的檢驗項目,強烈推薦在校學生仔細研究學習。

這個項目我在讀碩士時候做過,2周時間,只能看到項目2,一共7個,都做下來就很了不起了,可以做一個學期,慢慢做。裡面有部分彙編代碼,彙編也學下。

工作中的實際使用情況

基本不用!

用到的基本是著名的,比如Nginx,Redis等。

自己修改代碼的情況不多

基本是C++或者Java,或其他

不過也有很多公司需要根據自身的情況調整某些開源項目代碼的,所以可以看看開源代碼,或者說認真學習研究一個。在這類公司也有需求。

如果你是嵌入式等行業的就例外了。

總結

好好學,值得你好好學和你的付出。

個人覺得大學生怎麼花功夫在此語言上都不為過。

考研用/軟考用/很多高級語言的基礎/…...

只是為了工作的例外,你可以只學Java,Js等當簡單的碼農。

掌握了這個,理解其他的都容易些。

致敬:

C語言作者之一Dennis M.Ritchie(丹尼斯·里奇)

推薦閱讀:

超級計算機如何實現大規模人腦模擬?演算法姿勢正確很重要
軟考系統集成項目管理工程師第一章重點知識總結
近幾年人工智慧的進步算大嗎?
機械鍵盤使用技巧教程?
蘋果電腦上的那種香味是來源於何處?

TAG:計算機 | 編程 | 計算 | 花錢 |