树莓派(0)C语言教材学习
學(xué)習(xí)日記的功能主要是記錄學(xué)習(xí)C語言的知識還有難上手的地方,之后會記錄配置樹莓派環(huán)境還有設(shè)計(jì)linux環(huán)境下C語言的實(shí)驗(yàn)題目
目前在K&R的《C語言程序設(shè)計(jì)》教材學(xué)習(xí),前面的內(nèi)容沒有難度,基本上和高級程序設(shè)計(jì)語言的學(xué)習(xí)思路一樣,主要是為了了解C語言
 類型、運(yùn)算符、表達(dá)式、流控制,函數(shù)和程序結(jié)構(gòu)、指針與數(shù)組、結(jié)構(gòu)、輸入與輸出、UNIX系統(tǒng)接口的內(nèi)容,最后會有參考手冊和標(biāo)準(zhǔn)坤的內(nèi)容。大概期望的學(xué)習(xí)程度能夠熟練運(yùn)用C語言的語言特性,能夠看懂C語言的知識點(diǎn),同時(shí)在樹莓派上設(shè)計(jì)C語言實(shí)驗(yàn)題目。
下面的內(nèi)容有自己在學(xué)習(xí)中遇到的問題
 1、編寫頭文件;自己的頭文件使用“”來進(jìn)行編寫,代替“<>”
2、在使用多文件編譯是,我使用的是VScode的code runner,我懶得配置launch和tasks的json文件,我修改了code runner插件的配置文件,每次運(yùn)行代碼都將同目錄下的所有的C文件編譯一次,所以可以達(dá)到我的目的,至于能不能跨文件夾來編譯,暫時(shí)不考慮。
 
第一章導(dǎo)言的部分是通過華氏溫度和攝氏度展緩的程序來對c語言介紹,注意幾個(gè)地方
 1、在C語言中,char類型的數(shù)值和int 類型是相同的,這里直接將char類型的ascll數(shù)值轉(zhuǎn)化為int;類型,所以很多char類型的數(shù)值是通過int 定義的。
 2、注意特殊字符‘‘\n’’,'\t’之類的。
 
3、注意printf和scanf兩個(gè)輸出輸入的用法
 轉(zhuǎn)義字符的使用
 (太過枯燥寄不過來,什么時(shí)候用到什么時(shí)候再去看)
4、因?yàn)橛辛薈++的基礎(chǔ),所以學(xué)習(xí)起來沒有太多難度,難度還是在于進(jìn)行程序的設(shè)計(jì)。
EOF是文件結(jié)束符的標(biāo)志,在標(biāo)準(zhǔn)輸入stdin中,EOF可以通過 ctrl+z來代替。
第一章就這些
第二章
第二章在講運(yùn)算相關(guān)的
 1、數(shù)據(jù)的范圍和長度,分有符號和無符號 unsigned ,unsigned char類型的范圍為 0~255
 2、在剛剛講了一部分關(guān)于轉(zhuǎn)移字符的內(nèi)容
3、枚舉類型,大概每種語言都有類似的類型,這相當(dāng)于語言中都有的。直接定義enum 就可以。沒有顯示說明,第一個(gè)元素值為0,
 4、聲明和定義不太相同,聲明可以通過const 和 extern來進(jìn)行聲明,extern的具體應(yīng)用:
C語言代碼是由上到下依次執(zhí)行的,不管是變量還是函數(shù),原則上都要先定義再使用,否則就會報(bào)錯(cuò)
5、學(xué)會使用標(biāo)準(zhǔn)庫中的函數(shù),<stdio.h>,<cmath.h>,<ctype.h>,類似函數(shù)的學(xué)習(xí)通過算法題目來進(jìn)行積累。
6、條件表達(dá)式、for、while控制循環(huán)流
第三章
控制循環(huán)流,沒有筆記價(jià)值,這里注意的是,沒有布爾類型,如果非0則是true,0是false,在C語言中0代表不執(zhí)行。
第四章
1、函數(shù)的靜態(tài)變量,靜態(tài)函數(shù),寄存器變量。比較偏底層的設(shè)計(jì),把變量放在了寄存器中,利于底層開發(fā),不利于開發(fā)服務(wù)。JAVA的便捷性和耗時(shí)性也就在這里了。
 
 2、C預(yù)處理器,主要的是#define and #include ,后面還有typedef 用來替換類型名
第五章
1、指針與數(shù)組,指針指的是存儲地址,數(shù)組名指的是存儲第一個(gè)數(shù)組元素的地址,起始地址。
 2、指針可以被賦值,但是數(shù)組名不可以被賦值。
 3、理解指針的定義 int a = 3; int * p = &a ;
 4、命令行參數(shù),main( int argc, char * agrv[]) ,char * agrv[],在agrv數(shù)組村村的是char *類型的指針。 通常是char 類型的數(shù)組。
 5、C語言值得詬病的是因?yàn)檎Z法的簡潔導(dǎo)致的復(fù)雜聲明:
 
第六章 結(jié)構(gòu)
自引用結(jié)構(gòu),結(jié)構(gòu)里面不能再有結(jié)構(gòu),但是可以存在指向結(jié)構(gòu)的指針。
1、hash算法和表查找
 2、typedef char * String,一般來說都是大寫字符開頭。
第七章 標(biāo)準(zhǔn)輸入與輸出
這里想提一下C語言學(xué)習(xí)網(wǎng)站,網(wǎng)站的OJ不錯(cuò),但是需要付費(fèi)一個(gè)月28元,我覺得可以先充一個(gè)月試試看。
1、變長參數(shù)表,這里分析了printf和scanf是怎么樣將數(shù)據(jù)賦值的。
 
 
3、文件訪問,在stdio頭文件中存在結(jié)構(gòu) FILE,設(shè)計(jì)函數(shù)fopen,存在函數(shù)getc和putc
0,1,2分別代表標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤
4、其他函數(shù):
 
 
 
 
 
第八章 Unix環(huán)境下c語言相關(guān)的函數(shù),接近操作系統(tǒng),Unix系統(tǒng)接口
read、write、open、creat、close、unlink
1、fopen和getc的實(shí)現(xiàn)
 2、目錄列表的實(shí)現(xiàn)
 3、存儲分配程序
越偏向底層的內(nèi)容和知識越抽象,因?yàn)闆]有試驗(yàn)條件。
印象深刻的是第五章復(fù)雜聲明的代碼片段,互相遞歸調(diào)用,代碼的思想很棒。
總結(jié)
以上是生活随笔為你收集整理的树莓派(0)C语言教材学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: slickedit使用
 - 下一篇: RTC实时时钟驱动