第4講_標識符與數(shù)據(jù)類型_第1頁
第4講_標識符與數(shù)據(jù)類型_第2頁
第4講_標識符與數(shù)據(jù)類型_第3頁
第4講_標識符與數(shù)據(jù)類型_第4頁
第4講_標識符與數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、嵌入式嵌入式Linux系統(tǒng)開發(fā)技術系統(tǒng)開發(fā)技術第4講 標識符與數(shù)據(jù)類型基本C語言的語法 標識符與關鍵字 變量與常量 C語言數(shù)據(jù)類型C語言的字符集 C語言的基本符號可以分為4類 英文字母:大小寫26個,共52個; 阿拉伯數(shù)字:0-9共10個數(shù)字; 下劃線與分號: 特殊符號: 運算符、分隔符標識符 標識符定義 用來標識變量名、符號常量名、函數(shù)名、類型名、文件名等的有效字符序列; 標識符的規(guī)則 標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線; C 語言中的標識符大小寫敏感; 用戶自定義的標識符不能與關鍵字同名;標識符 示例:下面那些標識符是正確的?Arena、 1stte

2、st、 arena s_count、marks40、 oh!god、 class_one、start. end、int關鍵字 關鍵字的概念 就是對編譯器具有特定含義的標識符,是標識符的一個特殊的集合。 C中的關鍵字 C語言中ANSI標準制定的關鍵字共有32個; 所有的關鍵字小寫 系統(tǒng)內(nèi)置的標識符不要用于用戶定義的標識符系統(tǒng)內(nèi)置的標識符不要用于用戶定義的標識符C語言關鍵字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotointiflongregistereturnshortsignedsizeofstat

3、icstructswitchtypedefunionunsignedvoidvolatilewhileC語言數(shù)據(jù)存儲 數(shù)據(jù)的存儲使用變量或常量表示15內(nèi)存中的數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)1515內(nèi)存內(nèi)存通過變量,可以為內(nèi)通過變量,可以為內(nèi)存中的位置提供一個存中的位置提供一個有意義的名稱有意義的名稱變量 變量 程序要為每一項數(shù)據(jù)分配內(nèi)存,通常使用變量來存儲數(shù)據(jù)。使用變量可以引用存儲在內(nèi)存中的數(shù)據(jù),并隨時根據(jù)需要顯示數(shù)據(jù)或執(zhí)行數(shù)據(jù)操縱。 使用變量時必須“先定義,后使用”變量的聲明與初始化 變量的聲明 先定義后使用 變量初始化的時機 定義時初始化變量 Datatype variablename = value; 例

4、如:int num1,num2 = 12; 定義后初始化變量 variablename = value; 例如:int num;num = 12;數(shù)據(jù)類型數(shù)據(jù)類型 變量名稱變量名稱;int varName;給變量賦值,除了給一個直接的值以外,還可以通過計算獲得。變量的命名 編譯系統(tǒng)將大寫字母和小寫字母認為是兩個不同的字符。 在選擇變量名和其它標識符時,應注意做到“見名知意”,即選有含意的英文單詞 (或其縮寫)作標識符。變量地址 變量的地址:變量在內(nèi)存中總占用幾個連續(xù)的字節(jié),開始字節(jié)的地址,就是變量的地址。20072007常量與變量 常量的概念:在程序運行中,其數(shù)值不能被改變的量; 常量的分類

5、直接常量:在程序中直接引用的數(shù)據(jù); 符號常量:用標識符來表示一個數(shù)據(jù); 定義形式 :#define 標識符 常量數(shù)據(jù)符號常量與const關鍵字 符號常量#define COUNT 100提高代碼的可讀性,還可以做到一改全改 使用const關鍵字const int COUNT = 100;示例 要求用戶輸入圓的半徑(radius),經(jīng)過計算求出圓面積(area)并顯示在控制臺;要求:使用#define和const兩種方式定義常量PI=3.1415926 寫程序?qū)崿F(xiàn)游客租用游船的費用,功能如下:要求用戶輸入押金及使用游船的總時間,游船每小時30元,計算出應找回游客多少余額;C語言數(shù)據(jù)類型數(shù)據(jù)類型方

6、便讓我們數(shù)據(jù)類型方便讓我們對于不同的數(shù)據(jù)分類對于不同的數(shù)據(jù)分類處理處理數(shù)據(jù)類型的關鍵字 K&R關鍵字 Int、Long、Short、Char、Float、double、unsigned、 C90關鍵字 Signed、void C99關鍵字 _Bool、_Complex、_ImaginaryInt類型 Int類型 Int age = 21; Int age =21,score=90; Int age,score=90; #define MAX_AGE 200 Printf(“%d”,score); 整數(shù)類型的表示形式 十進制:沒有前綴,09的數(shù)字組成; 12322、0、-232 八進制:

7、以打頭,由07的數(shù)字組成; 023、0101 十六進制:以0X或0 x打頭,由09、AF或af組成0 x12=18(十進制)數(shù)值的顯示 使用八進制顯示:%o、%#o 使用十六進制顯示:%x、%#x、%#X#include int main(void)int age = 20;printf(dec = %d;octal = %o;hex = %xn,age,age,age);printf(dec = %d;octal = %#o;hex = %#xn,age,age,age);return 0;其他整數(shù)類型 Short類型:用于僅需小數(shù)值的場合以節(jié)省空間; Long類型:用于使用大數(shù)值的場合 U

8、nsigned類型:用于只使用非負值場合; Unsigned int Unsigned short類型 Unsigned long類型 Signed :使數(shù)據(jù)的類型更加明確; Signed int;整數(shù)類型的選擇 使用最常用的int類型 優(yōu)先考慮unsigned類型 當使用int類型不能表示一個數(shù)而使用long類型可以做到時,使用long類型; 在int為32位的系統(tǒng)中,如果需要16為的值,那么使用short類型可以節(jié)省存儲空間;整型數(shù)據(jù)32位機類型占用內(nèi)存字節(jié)數(shù)數(shù)的范圍int4個字節(jié)short2個字節(jié)-3276832767long4個字節(jié)unsigned4個字節(jié)unsigned short

9、2個字節(jié)065535unsigned long 4個字節(jié)代碼示例#include int main(void)int i_number = 10;short s_number = 10;long l_number =10L;unsigned ui_number =10u;unsigned short us_number = 10U;unsigned long ul_number = 10UL;printf(int sizeof :%dn,(sizeof i_number);printf(short sizeof:%dn,(sizeof s_number);printf(long sizeof

10、:%dn,(sizeof l_number);printf(unsigned int sizeof :%dn,(sizeof ui_number);printf(unsigned short sizeof :%dn,(sizeof us_number);printf(unsigned long sizeof :%dn,(sizeof ul_number);return 0;整數(shù)溢出問題#include #include int main(void)int max = INT_MAX;int min = INT_MIN;unsigned int umax = UINT_MAX;printf(th

11、e max+1 is %dn,max+1);printf(the min-1 is %dn,min-1);printf(the umax +1 is %un,umax+1);return 0;注意:整數(shù)溢出程序不會報錯,所以寫程序時一定要小心,當達到最大值時會從新從起點開始。signed和unsigned類型 signed最重要的是修改char數(shù)據(jù)類型 unsigned 類型指定變量只能接受正值 unsigned int varNum; varNum = 23123; 加上unsigned前綴,正數(shù)的取值范圍是原來的兩倍 Signed與unsigned修飾符可以與 int 和 float 數(shù)據(jù)

12、類型一起使用 unsigned int 支持的范圍是從 0 到 4,294,967,295常量與后綴后綴字母用途示例U或uUnsigned類型123u、2345UL或lLong類型123L、-789lll 或LLLong long類型3LLU,3ll,3ullF或f單精度浮點型0.123F、3.1415f整數(shù)類型的顯示 %u:顯示無符號整數(shù); %ld:顯示long類型整數(shù); %h:顯示short類型數(shù)據(jù) 符號可以結(jié)合使用: %lx、 %lo、%hd、%ho、%lu、%lld、%llu 寫代碼示例體驗整數(shù)類型的顯示體驗整數(shù)類型的顯示#include #include int main(void)

13、unsigned int guessNumber = UINT_MAX;short age = SHRT_MAX;long id = LONG_MAX;printf(guessNumber is %u and not %dn,guessNumber,guessNumber);printf(age is %hd and is %dn,age,age);printf(id is %ld and not %hd n,id,id);return 0;注意:每個要顯示的值都必須對應自己的格式說明符,并且顯示值的類型要同說明符相匹配;浮點數(shù)類型 浮點數(shù)類型分類 單精度(float型) 雙精度(double

14、型) 長雙精度型(long double) 浮點數(shù)的表示形式 小數(shù)形式:0.123; 指數(shù)形式:3e-3 規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點左邊應有一位(且只能有一位)非零的數(shù)字. 如:123.456可以表示為1.23456e2注意注意: :字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)類型類型與范圍32類型位數(shù)有效位數(shù)取值范圍float32位至少6位至少double64位至少10位至少long double96位與double相同與double相同 與整型數(shù)據(jù)的存儲方式不同,浮點型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個浮點型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。

15、指數(shù)部分采用規(guī)范化的指數(shù)形式。 浮點數(shù)類型的表示1.23f F或f:表示float類型 L或l:表示long double類型;浮點數(shù)的輸出格式 輸出浮點數(shù)的格式 %f:輸出十進制計數(shù)法的float和double數(shù)字; %e:輸出指數(shù)計數(shù)法的float和double數(shù)字; %Lf、%Le:輸出long double類型的數(shù)字;代碼示例#include int main(void)float f_number = 4321.0f;double d_number = 1.234e3;long double ld_number = 1.234e-3L;printf(%f can be written

16、 %e,and float sizeof :%dn,f_number,f_number,(sizeof f_number);printf(%f can be written %e ,and double sizeof :%dn,d_number,d_number,(sizeof d_number);printf(%Lf can be written %Le,and long double sizeof :%dn,ld_number,ld_number,(sizeof ld_number);return 0;整型與浮點型比較 整數(shù)沒有小數(shù)部分;浮點數(shù)可以有小數(shù)部分; 浮點數(shù)的表示范圍比整數(shù)大得多

17、; 對于一些算術運算,使用浮點數(shù)會損失更多精度; 浮點數(shù)只是實際值的近似值; 浮點數(shù)通常比整數(shù)運算慢;浮點數(shù)的上溢與下溢#include #include int main(void)float f_max =FLT_MAX*FLT_MAX ;float f_min = FLT_MIN/FLT_MAX;printf(f_max is %fn, f_max);printf(f_min is %fn,f_min);return 0;char 類型 Char類型 用單引號括起來的一個字符;注意只能是英文的單引號 用于存儲字母和標點符號之類的字符; 實質(zhì)是占一個字節(jié)的整型數(shù)(小整數(shù))A65 示例:a、

18、m、$、%、1、5 Char類型的賦值方式 Char gender=M; Char gender= 77; %cchar 類型(ASCII碼)值值符號符號值值符號符號值值符號符號0空字符44,9132空格45-9233!46.933447/9435#48 570 995-36$58:9637%59;97 122a z38&6012541)63?12642*64127DEL(Delete鍵)43+65 90A Z轉(zhuǎn)義字符轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線“”開頭常用的轉(zhuǎn)義字符 a: 蜂鳴,響鈴 b: 回退:向后退一格 f: 換頁 n: 換行,光標到下行行首 r: 回車,光標到

19、本行行首 t: 水平制表 v: 垂直制表 : 反斜杠 : 單引號 : 雙引號 ” ?: 問號 ddd: 1到3位八進制數(shù)所代表的字符 xhh: 1到2位十六進制數(shù)所代表的字符 0: 空字符(NULL),什么都不做 代碼示例# include int main(void)printf(How are you?n);printf(I am fine.nn);printf(How are you?t);printf(I am fine.nn);printf( How are you?n);.printf( bI am fine.nn);printf( I am fine.); printf(rHow

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論