時間:2018-07-13 00:00:00 來源:信盈達 作者:信盈達
表達式
表達式C語言中分為常量表達式,算術表達式,關系表達式,邏輯表達式,賦值表達式,逗號表達式和復合表達式etc。表達式可以分為左值和右值
左值(ell-value)可以出現(xiàn)在賦值運算符的左邊或者右邊,變量就是一個左值表達式
右值(are-value)只能出現(xiàn)在賦值運算符的右邊,數(shù)字字面值就是一個右值表達式。
語句
語句是C語言用于表達命令邏輯語法結構,主要分為表達式語句,語句塊,空語句,控制語句和特殊語句
變量
從語言的角度看,變量是一個左值,可以放在賦值運算符的左邊接受一個值或者是右邊用來給別的變量賦值,同時,變量也是一個表達式,這個表達式的值就是變量的值。此外,變量也可以從程序的本質來理解,對于任何一個問題及其解決方案,都要用 一組數(shù)據(jù) 和 這組數(shù)據(jù)的變化 來描述,描述好了就可以用計算機解決,描述不了的計算機也解決不了。變量就是用來表示一組類似的相似數(shù)據(jù)的其中一種方法,是所有現(xiàn)代程序設計語言的基礎。
數(shù)據(jù)類型: C語言中,任何數(shù)據(jù)皆有其類型,就像水果可以被劃分為蘋果、橘子etc
常量:值不能更改的量,即柜子上一個上鎖的抽屜,里面存了什么就是什么,你知道,但你改不了
變量:值可以更改的量,即似柜子上一個沒鎖的抽屜,今天用來放小蘋果,明天放個大蘋果
常量的類型:定義常量時指定的這塊內存存放的數(shù)據(jù)類型,即上鎖的抽屜里存的到底是蘋果還是橘子
常量的地址:存儲該常量的內存區(qū)域的第一個byte的地址,即上鎖抽屜的編號
變量的類型:定義變量時指定的這個變量里面存儲的數(shù)據(jù)類型,即沒鎖的抽屜專門用來放蘋果還是放橘子
變量的地址:變量用來存儲數(shù)據(jù)的那塊內存的首地址,即沒鎖抽屜的編號,因為每個地址在內存中都是唯一的,所以變量的地址可以用來唯一的標識變量
值傳遞:把一個變量里存儲的數(shù)據(jù)傳遞給另一個變量,即在另外一個沒鎖的抽屜里放一個之前一模一樣的蘋果
地址傳遞:把一個變量的地址傳遞給另一個變量,即在另外一個沒鎖的抽屜里放個紙條,上面寫著之前那個抽屜的編號
作用域:變量工作范圍的空間限定,即超過多遠就不能直接打開抽屜,如果使用變量的代碼不在該變量的作用域,需要使用"值傳遞"或"地址傳遞"的方式獲得相應數(shù)據(jù)再使用
生命周期:變量工作范圍的時間限定,即超過多久抽屜就被扔掉了,變量的生命周期一旦結束,它之前占據(jù)的內存就會被重新用作它用,這個變量也就不再存在了
自動變量:不需要指定變量的存儲類型的變量,通常我們不進行任何修飾的變量的就是自動變量,需要使用auto關鍵字,現(xiàn)在已很少使用
寄存器變量:希望將該變量存儲在寄存器中而不是內存中,可以提高變量的讀取速度,需要使用register關鍵字,由于編譯器的智能化,基本沒有用了
全局變量:作用域是整個程序的變量,聲明在main之外,需要global 關鍵字來聲明,生命周期和進程一樣長
局部變量:作用域是函數(shù)體的變量,聲明在函數(shù)體fcn(){}內,生命周期和函數(shù)一樣長
塊內變量 :作用域在塊內的變量,聲明在語句塊{}內,生命周期和語句塊一樣長
靜態(tài)變量 :生命周期和進程一樣長的變量,限制了變量的作用域不會超出本文件,即全局變量被限制在本文件,局部和塊內還是本來的作用域范圍,聲明需要使用static關鍵字
外部變量:該變量已經(jīng)在其他源文件中被定義過,被拿到此文件中使用,聲明一個外部變量需要使用extern關鍵字
宏
宏是C語言中使用#define關鍵字定義的一個別名,在預處理階段會進行宏替換,以字符串形式原模原樣的替換被定義的字符串
#define add (plus) //程序中所有的add組合都會被替換成(plus)
C語言內置宏
這些宏長用于調試代碼,C語言的很多宏都使用__XXX__格式,Linux的API里很多宏都使用XXX_XXX格式,所以當使用自定義宏的時候,應該使用其他格式避免重名,宏只是進行字符組合的替換,在預處理階段就做完了,如果除了bug很難找。
__LINE__ //該行代碼的所在行號 __FILE__ //源文件的文件名 __DATE__ //源文件被翻譯到代碼時的日期。 __TIME__ //源代碼翻譯到目標代碼的時間 __STDC__ //如果實現(xiàn)是標準的,則宏__STDC__含有十進制常量1。如果它含有任何其它數(shù),則實現(xiàn)是非標準的。
嵌入式C語言是作為嵌入式Linux開發(fā)的基礎語言,也是學習嵌入式的必備語言。
免費領取試聽卡
申請已經(jīng)提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!