如何學習C語言,入門需要了解哪些知識呢?
如何學習C語言,入門需要了解哪些知識呢?C語言是編程人員都需要掌握的語言,也是基礎語言,而對于一種新語言的入門,往往有一定的困難,其實是人們心中的疙瘩,對新事物的恐懼心理,其實學習C語言并不難。鄭州北大青鳥翔天信鴿就為大家詳細講解C語言的入門。
1、變量名與變量值
變量名實際上是一個符號地址。程序編譯時,系統(tǒng)給變量開辟該變量對應類型所需的內(nèi)存空間(用于存儲變量值),然后由系統(tǒng)建立一個從變量名到該內(nèi)存空間的首地址的映射,這樣就可以通過變量名訪問到變量值了。
變量名由數(shù)字、字母和下劃線組成。大小寫敏感,不能以數(shù)字開頭。變量名的長度(字符個數(shù))沒有硬性的規(guī)定,只是不同的C編譯器可能會有不同要求。
C語言中,使用變量之前必須定義該變量,否則編譯出錯。定義變量時須寫明變量所屬類型。程序編譯時,會根據(jù)變量的類型來決定為該變量開辟多大的內(nèi)存空間,同時還可以檢查運算的合法性。比如實型數(shù)據(jù)之間不能做求余數(shù)的操作。
2、整型數(shù)據(jù)
C語言中,整型數(shù)據(jù)的類別有三種:short,int,long;屬性有兩種:signed,unsigned。共有六種組合。
整型數(shù)據(jù)類型的長度:C標準沒有硬性規(guī)定每種類型的長度,只是規(guī)定:long的長度要不小于int;short的長度不大于int。一般的C編譯器都會以一個機器字的存放一個int型數(shù)據(jù)。
3、變量初始化
變量的初始化不是在編譯期間完成內(nèi)存空間的分配(只有靜態(tài)變量和外部變量是在編譯期間初始化),而是在程序運行時執(zhí)行函數(shù)時才賦值。
4、C語言的變量的存儲類型
C語言的變量存儲類型有很多種分法,根據(jù)生命周期來分可分為:動態(tài)變量和靜態(tài)變量;根據(jù)使用域來分可分為:局部變量和全局變量(又叫內(nèi)部變量和外部變量)
a)、動態(tài)變量和靜態(tài)變量。
動態(tài)變量------變量所占空間是動態(tài)分配的,即只有到使用到某個變量時,才動態(tài)的給該變量分配內(nèi)存空間,用完后還要及時收回。比如函數(shù)的形參及函數(shù)內(nèi)的局部變量。其代碼表現(xiàn)形式為關鍵字"auto"+變量類型名+變量名,一般情況下關鍵字"auto"省略不寫。也就是說我們平時用得最多的就是動態(tài)變量。動態(tài)變量存放于內(nèi)存的棧區(qū)和堆區(qū)。
靜態(tài)變量------變量所占空間是靜態(tài)的,即程序自始至終一直存在。代碼表現(xiàn)形式為關鍵字"static"+變量類型名+變量名,靜態(tài)變量的初始化是在編譯期完成的,且只初始化一次,程序執(zhí)行時不再對靜態(tài)變量進行賦初值。
b)、局部變量和全局變量(又叫內(nèi)部變量和外部變量)
局部變量------定義在函數(shù)體內(nèi)部的變量,所以又叫內(nèi)部變量。其作用域僅限于聲明該局部變量的函數(shù)體內(nèi)部。程序運行時,在動態(tài)存儲區(qū)為局部變量分配空間(靜態(tài)局部變量除外)。
一般情況下使用的局部變量都是動態(tài)變量,但并不表示沒有靜態(tài)的局部變量。靜態(tài)局部變量因為是靜態(tài)的所以會被存在靜態(tài)存儲區(qū),這就意味著即使函數(shù)調(diào)用結(jié)束,它的值還仍然存在。利用這一特性我們可以用靜態(tài)局部變量來保留函數(shù)上一次的執(zhí)行結(jié)果
全局變量------定義在函數(shù)體外部的變量,所以又叫外部變量。其作用域為該全局變量的聲明處一直到程序結(jié)束。與局部變量不同的是,全局變量存在靜態(tài)存儲區(qū),在編譯期就被分配空間。
外部變量可以用"extern"關鍵字來擴展作用域。例如:一int型的外部變量A被定義在程序的中部,那該外部變量的作用域是不包含其以上的函數(shù)的,如果在文件開頭使用"extern A"來聲明該外部變量,那該外部變量的作用域變會被擴大到整個文件。使用"extern"還可以把外部變量的作用域擴大到另外的文件中。例如:在a.c中有一外部變量A,那在b.c中使用extern A聲明后A在b.c中也可以使用了。
當然,C語言并不是這幾句話就可以說清的,IT技術最重要的一點是實踐,只有實踐過了才能算真正掌握技術。
本文由站河南北大青鳥校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學習技巧、就業(yè)案例、招生詳情等問題,可以對在線咨詢老師進行一對一問答!
推薦資訊
- 學生考不上高中怎么辦學什么技術... 2020-07-28
- 什么是軟件架構師?未來你的職場定... 2012-04-24
- 熱烈祝賀北大青鳥2015年度會議在... 2015-12-14
- 在鄭州學計算機去哪個學校... 2019-12-30
- 80后職場人,職業(yè)浪潮中我們怎么... 2012-10-13
熱點資訊
- 河南中考300分能上什么學校呢?... 2024-07-11
- 鄭州北大青鳥職業(yè)技術學校招生要... 2024-07-08
- 鄭州北大青鳥是一個什么性質(zhì)的學... 2024-07-02
- 在河南中考考了300多分能上什么學... 2024-06-28
- 初三畢業(yè)考不上高中怎么辦呢... 2024-06-25