




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Ch2 Ch2 C C語言基礎(chǔ)語言基礎(chǔ)數(shù)據(jù)類型、運算符和表達式數(shù)據(jù)類型、運算符和表達式2022-3-182內(nèi)容提要基本數(shù)據(jù)類型;基本數(shù)據(jù)類型;常量和變量;常量和變量; 標識符命名;標識符命名; 常用運算符和表達式;常用運算符和表達式;運算符的優(yōu)先級與結(jié)合性運算符的優(yōu)先級與結(jié)合性 2022-3-183一個簡單的C程序例子 #include /*函數(shù)功能函數(shù)功能:計算兩個整數(shù)相加之和計算兩個整數(shù)相加之和 入口參數(shù)入口參數(shù):整型數(shù)據(jù)整型數(shù)據(jù)a和和b 返回值:返回值: 整型數(shù)整型數(shù)a和和b之和之和*/int Add(int a, int b)return (a + b);/*主函數(shù)主函數(shù)*/main(
2、)int x, y, sum = 0;printf(Input two integers:);scanf(%d%d, &x, &y); /*輸入兩個整型數(shù)輸入兩個整型數(shù)x和和y*/sum = Add(x, y); /*調(diào)用函數(shù)調(diào)用函數(shù)Add計算計算x和和y相加之和相加之和*/printf(sum = %dn, sum); /*輸出輸出x和和y相加之和相加之和*/2022-3-184C程序常見符號分類 關(guān)鍵字(關(guān)鍵字(Keyword) 又稱為保留字,又稱為保留字,C語言中預先規(guī)定的具有固定含義的一些單詞語言中預先規(guī)定的具有固定含義的一些單詞 標識符(標識符(Identifier)系統(tǒng)預定義標識符
3、系統(tǒng)預定義標識符用戶自定義標識符用戶自定義標識符 運算符(運算符(Operator)34種,詳見附錄種,詳見附錄2 分隔符(分隔符(Separator) 空格、回車空格、回車/換行、逗號等換行、逗號等 其它符號其它符號 大花括號大花括號“”和和“”通常用于標識函數(shù)體或者一個語句塊通常用于標識函數(shù)體或者一個語句塊 “/*”和和“*/”是程序注釋所需的定界符是程序注釋所需的定界符 數(shù)據(jù)(數(shù)據(jù)(Data)變量(變量(Variable)常量(常量(Constant) 2022-3-185數(shù)據(jù)類型(Data Type)數(shù)據(jù)為什么要區(qū)分類型?數(shù)據(jù)為什么要區(qū)分類型?不同類型的數(shù)據(jù)代表不同的不同類型的數(shù)據(jù)代表
4、不同的數(shù)據(jù)表示形式數(shù)據(jù)表示形式合法的取值范圍合法的取值范圍占用內(nèi)存空間大小占用內(nèi)存空間大小可參與的運算種類可參與的運算種類 從基本數(shù)據(jù)類型到抽象數(shù)據(jù)類型從基本數(shù)據(jù)類型到抽象數(shù)據(jù)類型無數(shù)據(jù)類型無數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型 構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型 抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型 2022-3-186數(shù)據(jù)類型(Data Type)數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型整型整型實型(浮點型)實型(浮點型)字符型字符型枚舉類型枚舉類型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型共用體類型共用體類型單精度實型雙精度實型基本整型長整型短整型無符號整型2022-3-187標識符
5、命名 變量名變量名 函數(shù)名函數(shù)名 由英文字母、數(shù)字和下劃線組成,大小寫敏感由英文字母、數(shù)字和下劃線組成,大小寫敏感 不可以不可以是數(shù)字開頭是數(shù)字開頭 直觀,見名知意,便于記憶和閱讀直觀,見名知意,便于記憶和閱讀最好使用英文單詞或其組合最好使用英文單詞或其組合切忌使用漢語拼音切忌使用漢語拼音 下劃線和大小寫通常用來增強可讀性下劃線和大小寫通常用來增強可讀性variablenamevariable_nameVariableName, variableName 不允許使用關(guān)鍵字作為標識符的名字不允許使用關(guān)鍵字作為標識符的名字 int, float, for, while, if等等 某些功能的變量采
6、用習慣命名某些功能的變量采用習慣命名如:如:for語句所采用的循環(huán)變量習慣用語句所采用的循環(huán)變量習慣用i, j, k2022-3-188b, B, KB, MB, GB, TB Megabyte(MB),中文叫法:兆,中文叫法:兆 Kilobyte(KB),中文叫法:,中文叫法: K Byte,中文叫法:字節(jié),中文叫法:字節(jié) bit,中文叫法:位,中文叫法:位 Gigabyte(GB),中文叫法:,中文叫法:G Terabyte(TB),中文叫法:,中文叫法:T2022-3-189b, B, KB, MB, GB, TB 一個位有多大?一個位有多大?只能是只能是“0”或者或者“1”,這叫二進制
7、,這叫二進制 一個字節(jié)有多大?一個字節(jié)有多大?保存一個字符(英文字母、數(shù)字、符號)保存一個字符(英文字母、數(shù)字、符號) ASCII(美國標準信息交換碼)編碼(美國標準信息交換碼)編碼兩個字節(jié)保存一個漢字兩個字節(jié)保存一個漢字 GB編碼編碼可以表示數(shù)字可以表示數(shù)字02552022-3-1810基本數(shù)據(jù)類型 int整數(shù),在目前絕大多數(shù)機器上占整數(shù),在目前絕大多數(shù)機器上占4個字節(jié)。個字節(jié)。TC2中是中是2個字個字節(jié)節(jié) float單精度浮點數(shù),一般是單精度浮點數(shù),一般是4個字節(jié)長個字節(jié)長 double雙精度浮點數(shù),一般是雙精度浮點數(shù),一般是8個字節(jié)長個字節(jié)長 char字符,一般是字符,一般是1個字節(jié)長個
8、字節(jié)長用來表示用來表示256個個ASCII字符,或者字符,或者0255的整數(shù)的整數(shù)2022-3-1811數(shù)據(jù)類型修飾符 shortshort int,短整數(shù),一般,短整數(shù),一般2個字節(jié)長。通常簡寫為個字節(jié)長。通常簡寫為short longlong int,長整數(shù),一般是,長整數(shù),一般是4個字節(jié)長。通常簡寫為個字節(jié)長。通常簡寫為longlong double,長雙精度(高精度)浮點數(shù),一般是,長雙精度(高精度)浮點數(shù),一般是10個字節(jié)長。個字節(jié)長。 signed用來修飾用來修飾char、int、short和和long,說明他們是,說明他們是有符號有符號的整數(shù)的整數(shù)(正整數(shù)、(正整數(shù)、0和負整數(shù))
9、。一般缺省都是有符號的,所以這個修飾符和負整數(shù))。一般缺省都是有符號的,所以這個修飾符通常省略通常省略 unsigned用來修飾用來修飾char、int、short和和long,說明他們是,說明他們是無符號無符號的整數(shù)的整數(shù)(正整數(shù)和(正整數(shù)和0)2022-3-1812使用變量要注意 不要對變量所占的內(nèi)存空間字節(jié)數(shù)想當然不要對變量所占的內(nèi)存空間字節(jié)數(shù)想當然用用sizeof獲得變量或者數(shù)據(jù)類型的長度獲得變量或者數(shù)據(jù)類型的長度現(xiàn)場演示程序在現(xiàn)場演示程序在Turbo C2.0和和Visual C下的運行結(jié)果下的運行結(jié)果2022-3-1813變量聲明 使用變量的基本原則使用變量的基本原則變量必須先定義
10、,后使用變量必須先定義,后使用所有變量必須在第一條可執(zhí)行語句前定義所有變量必須在第一條可執(zhí)行語句前定義 聲明的順序無關(guān)緊要聲明的順序無關(guān)緊要 一條聲明語句可聲明若干個同類型的變量一條聲明語句可聲明若干個同類型的變量 聲明變量,是初始化變量的最好時機聲明變量,是初始化變量的最好時機不被初始化的變量,其值為危險的隨機數(shù)不被初始化的變量,其值為危險的隨機數(shù)char esc = a;int i = 1;int sum = 0;float eps = 1.0e-5;2022-3-1814實型數(shù)據(jù)提供的有效數(shù)字位數(shù) float型數(shù)據(jù)提供型數(shù)據(jù)提供7位有效數(shù)字位有效數(shù)字 double型數(shù)據(jù)提供型數(shù)據(jù)提供16
11、位有效數(shù)字位有效數(shù)字 使用不當導致舍入誤差使用不當導致舍入誤差2022-3-1815數(shù)據(jù)在內(nèi)存中的存儲格式 整型整型 實型實型 字符型字符型階碼符號階碼符號階碼的數(shù)值階碼的數(shù)值尾數(shù)符號尾數(shù)符號尾數(shù)的數(shù)值尾數(shù)的數(shù)值階碼階碼j尾數(shù)尾數(shù)S2022-3-1816char型與int型之間的關(guān)系 小寫字母轉(zhuǎn)換為大寫字母小寫字母轉(zhuǎn)換為大寫字母 2022-3-1817常數(shù)(Constant) 整型常數(shù)整型常數(shù)18、-31長整型常量長整型常量 123l、123L、123456l、123456L無符號型常量無符號型常量 123u、 123U 浮點常數(shù)浮點常數(shù)十進制小數(shù)形式十進制小數(shù)形式 123.45、456.78
12、指數(shù)形式指數(shù)形式 1e-2、4.5e3單精度實型常量單精度實型常量 123.45f、 456.78F、1e-2f、4.5e3F長雙精度型常量長雙精度型常量 123.45l、 456.78L、1e-2l、4.5e3L2022-3-1818八進制與十六進制常數(shù) 以數(shù)字以數(shù)字“0”開始的整型常數(shù)是八進制數(shù)開始的整型常數(shù)是八進制數(shù)022、-037010和和10大小不一樣大小不一樣因為八進制并不常用,所以此種表示法比較少見因為八進制并不常用,所以此種表示法比較少見 以以“0 x”或者或者“0X”開始的整型常數(shù)是十六開始的整型常數(shù)是十六進制進制AF和和af用來表示十進制的用來表示十進制的1015十六進制的
13、形式比較常用,尤其在進行位一級的控十六進制的形式比較常用,尤其在進行位一級的控制的時候制的時候0 x12、-0 x1F, -0 x1f2022-3-1819字符(Character)常數(shù) 字符常數(shù)的表示方法字符常數(shù)的表示方法a,A,5,%,$單引號內(nèi)只能有一個字符,除非用單引號內(nèi)只能有一個字符,除非用“”開頭開頭 就是一個普通整數(shù),也可以參與各種數(shù)學運算就是一個普通整數(shù),也可以參與各種數(shù)學運算每個字符具有一個每個字符具有一個0255之間的數(shù)值,可從之間的數(shù)值,可從ASCII表查出表查出注意:注意:5和整數(shù)和整數(shù)5的區(qū)別的區(qū)別字符的數(shù)學運算在密碼學內(nèi)用得比較多字符的數(shù)學運算在密碼學內(nèi)用得比較多2
14、022-3-1820字符常數(shù) 轉(zhuǎn)義字符轉(zhuǎn)義字符一些特殊字符(無法從鍵盤輸入或者另有它用)用一些特殊字符(無法從鍵盤輸入或者另有它用)用轉(zhuǎn)義字符表示轉(zhuǎn)義字符表示2022-3-1821字符串(String)常數(shù) 用雙引號括住的由用雙引號括住的由0個或多個字符組成的字符序列個或多個字符組成的字符序列I am a string表示空字符串表示空字符串轉(zhuǎn)義字符也可以在字符串中使用轉(zhuǎn)義字符也可以在字符串中使用引號只作為字符串開始和結(jié)束的標志引號只作為字符串開始和結(jié)束的標志C語言內(nèi)部用語言內(nèi)部用0表示字符串的結(jié)束表示字符串的結(jié)束除注釋外,是唯一可以出現(xiàn)中文的地方除注釋外,是唯一可以出現(xiàn)中文的地方 x和和x是
15、不同的是不同的 里定義了一系列專門的字符串處理函數(shù)里定義了一系列專門的字符串處理函數(shù)2022-3-1822枚舉(Enumeration)常量一個被遺忘的角色一個被遺忘的角色從程序來窺其一斑從程序來窺其一斑 enum weeks MON, TUE, WED, THU, FRI, SAT, SUN; enum weeks today; enum response no, yes, none; enum response answer; today = TUE; answer = yes; if (answer = yes) printf(Today is Tuesday.n); else prin
16、tf(Today is NOT Tuesday.n);2022-3-1823宏常量 宏常量宏常量也稱符號常量也稱符號常量一般采用大寫字母表示一般采用大寫字母表示 #define 標識符標識符 字符串字符串不是語句,而是一種編譯預處理命令不是語句,而是一種編譯預處理命令 宏替換(宏替換(Macro Substitulition) 2022-3-1824宏常量 宏常量宏常量也稱符號常量也稱符號常量一般采用大寫字母表示一般采用大寫字母表示 #define 標識符標識符 字符串字符串不是語句,而是一種編譯預處理命令不是語句,而是一種編譯預處理命令 宏替換(宏替換(Macro Substitulitio
17、n) 2022-3-1825const常量 用用const修飾定義的變量為常量修飾定義的變量為常量const float pi = 3.1425926; 常量只能在定義時賦值,然后常量只能在定義時賦值,然后不能不能再改變其值再改變其值 常數(shù)、常數(shù)、 const常量常量、宏常量和枚舉常量,都可宏常量和枚舉常量,都可以用來表示一個永遠不會改變的數(shù)以用來表示一個永遠不會改變的數(shù)前者不建議直接使用,而用后三者代替前者不建議直接使用,而用后三者代替2022-3-1826算術(shù)運算符 +,-,*,/加、減、乘、除運算加、減、乘、除運算四則混合運算中,先算乘除,后算加減,四則混合運算中,先算乘除,后算加減,按
18、從左向右的順序計算,左結(jié)合按從左向右的順序計算,左結(jié)合 %求余運算求余運算常用的標準數(shù)學函數(shù)函數(shù)名函數(shù)名功功 能能函數(shù)名函數(shù)名功功 能能sqrt(x)計算計算x的平方根,的平方根,x應(yīng)大于等于應(yīng)大于等于0 exp(x)計算計算ex的值的值fabs(x)計算計算x的絕對值的絕對值pow(x,y)計算計算xy的值的值log(x)計算計算lnx的值的值sin(x)計算計算sinx的值,的值,x為弧度值為弧度值log10(x)計算計算lgx的值的值cos(x)計算計算cosx的值,的值,x為弧度值為弧度值2022-3-1827關(guān)系運算符 ,=, b & b c);a大于大于b,并且,并且b大于大于c
19、|或運算或運算( a b | b c); a大于大于b,或者,或者b大于大于c !求反求反( !a );如果;如果a是是0,結(jié)果非,結(jié)果非0;如果;如果a是非是非0,結(jié)果是,結(jié)果是0并不改變并不改變a的值的值2022-3-1829實例 ch是英文大寫字母是英文大寫字母 (ch = A) & (ch double float long int short char 把數(shù)據(jù)賦值給另外一種類型變量也會發(fā)生自動類把數(shù)據(jù)賦值給另外一種類型變量也會發(fā)生自動類型轉(zhuǎn)換型轉(zhuǎn)換從小到大,順利轉(zhuǎn)換從小到大,順利轉(zhuǎn)換從大到小,可能丟失信息(好的編譯器會發(fā)出警告)從大到小,可能丟失信息(好的編譯器會發(fā)出警告)2022-
20、3-1833類型強轉(zhuǎn)(Casting) 消除從大到小的警告消除從大到小的警告l = (long)i;可以通過可以通過“(類型類型)表達式表達式”的方式把表達式的值轉(zhuǎn)為任意類型的方式把表達式的值轉(zhuǎn)為任意類型強轉(zhuǎn)時,你必須知道你在做什么強轉(zhuǎn)時,你必須知道你在做什么強轉(zhuǎn)與指針,并稱強轉(zhuǎn)與指針,并稱C語言兩大神器,用好了可以呼風喚雨,用壞了就損兵折將語言兩大神器,用好了可以呼風喚雨,用壞了就損兵折將2022-3-1834增一和減一運算符 n+,n-,+n,-n+讓參與運算的變量加1,-讓參與運算的變量減1作為后綴運算符時,先取n的值,然后加/減1作為前綴運算符時,先加/減1,然后取n的值 m = n+
21、; 等價于m=n;n+; m = +n; 等價于n+; m=n;2022-3-1835增一和減一運算符 良好的程序設(shè)計風格提倡:在一行語句中,良好的程序設(shè)計風格提倡:在一行語句中,一個變量只能出現(xiàn)一次加一個變量只能出現(xiàn)一次加1或者減或者減1運算運算過多的加過多的加1和減和減1運算混合,不僅可讀性差,而且運算混合,不僅可讀性差,而且因為編譯器實現(xiàn)的方法不同,導致不同編譯器產(chǎn)因為編譯器實現(xiàn)的方法不同,導致不同編譯器產(chǎn)生不同的運行結(jié)果生不同的運行結(jié)果2022-3-1836位操作運算符 &按位與運算按位與運算 |按位或運算按位或運算 按位異或運算按位異或運算 按位右移運算按位右移運算 按位求反按位求反2022-3-1837賦值運算符 下面兩個語句是等價的下面兩個語句是等價的i = i + 2;i += 2; +、-、*、/、%、&、|運算符都運算符都可以按此種方式處理可以按此種方式處理 這種形式看起來更直觀,而且執(zhí)行效率一般也這種形式看起來更直觀,而且執(zhí)行效率一般也能更高一些能更高一些2022-3-1838逗號運算符 表達式表達式1, 表達式表達式2, ., 表達式表達式n 多數(shù)情況下,并不使用整個逗號表達式的多數(shù)情況下,并不使用整個逗號表達式的值,更常見的情況是要分別得到各表達式值,更常見的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨物運輸代理授權(quán)委托合同
- VR技術(shù)在教育培訓行業(yè)的創(chuàng)新應(yīng)用
- 客戶往來商務(wù)信函管理規(guī)范
- 《歷史經(jīng)典著作〈紅樓夢〉閱讀教學設(shè)計》
- 產(chǎn)品采購及供應(yīng)協(xié)議規(guī)范內(nèi)容
- 高考語文復習微專題之文言文閱讀之斷句
- 高考語文復習:文言文專題訓練《莊子》
- 人才培訓與招聘服務(wù)協(xié)議
- 中小學必讀經(jīng)典書目征文
- 古詩詞中情感與意象的探討
- 2024年時政試題庫(綜合卷)
- 追悼會主持詞開場白-追悼會流程主持詞
- Unit7ArtLesson2BeijingOpera課件高中英語北師版
- 人教版七年級數(shù)學下冊 第五章 相交線與平行線5.4 平移(課件)
- 數(shù)學之美:欣賞數(shù)學的優(yōu)雅與美麗
- 2023高考語文文言文復習:《說苑》練習題(含答案解析)
- 成都印鈔公司招聘考試題
- 低血糖健康宣教
- 跨文化商務(wù)交際導論-教學課件Unit 2 Intercultural business communication
- 《射頻同軸電纜》課件2
- 餐飲經(jīng)營分析會報告
評論
0/150
提交評論