編程語言語法規(guī)范_第1頁
編程語言語法規(guī)范_第2頁
編程語言語法規(guī)范_第3頁
編程語言語法規(guī)范_第4頁
編程語言語法規(guī)范_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java基本語法:1) 大小寫敏感:Java是大小寫敏感的,這就意味著標(biāo)識(shí)符Hello與hello是不同的。2) 類名:對(duì)于所有的類來說,類名的首字母應(yīng)該大寫。如果類名由若干單詞組成,那么每個(gè)單詞的首字母應(yīng)該大寫,例如 MyFirstJavaClass 。3) 方法名:所有的方法名都應(yīng)該以小寫字母開頭。如果方法名含有若干單詞,則后面的每個(gè)單詞首字母大寫。4) 源文件名:源文件名必須和類名相同。當(dāng)保存文件的時(shí)候,你應(yīng)該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的后綴為.java。(如果文件名和類名不相同則會(huì)導(dǎo)致編譯錯(cuò)誤)。5) 主方法入口:所有的Java 程序由pub

2、lic static void main(String args)方法開始執(zhí)行。Java標(biāo)識(shí)符:1) 所有的標(biāo)識(shí)符都應(yīng)該以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開始2) 首字符之后可以是任何字符的組合3) 關(guān)鍵字不能用作標(biāo)識(shí)符4) 標(biāo)識(shí)符是大小寫敏感的5) 合法標(biāo)識(shí)符舉例:age、$salary、_value、_1_value6) 非法標(biāo)識(shí)符舉例:123abc、-salaryJava修飾符:1) 可訪問修飾符 : default (switch語句中的默認(rèn)分支), public, protected (表示字段只能通過類或者其子類訪問或者在同一個(gè)包內(nèi)的其他類), privat

3、e (表示私有字段,或者方法等,只能從類內(nèi)部訪問)2) 不可訪問修飾符 : final (表示一個(gè)值在初始化之后就不能再改變了表示方法不能被重寫,或者一個(gè)類不能有子類), abstract (抽象方法,抽象類的修飾符), strictfp(浮點(diǎn)數(shù)比較使用嚴(yán)格的規(guī)則)Java變量:1) 局部變量2) 類變量(靜態(tài)變量)3) 成員變量(非靜態(tài)變量)C+C+簡(jiǎn)介:1) C+ 是一種靜態(tài)類型的、編譯式的、通用的、大小寫敏感的、不規(guī)則的編程語言,支持過程化編程、面向?qū)ο缶幊毯头盒途幊獭?) C+ 被認(rèn)為是一種中級(jí)語言,它綜合了高級(jí)語言和低級(jí)語言的特點(diǎn)。注意:使用靜態(tài)類型的編程語言是在編譯時(shí)執(zhí)行類型檢查,

4、而不是在運(yùn)行時(shí)執(zhí)行類型檢查。 C+ 變量在定義時(shí)分配內(nèi)存,而不是在初始化時(shí)。 局部變量存儲(chǔ)在棧中;全局變量和static變量存儲(chǔ)在全局/靜態(tài)存儲(chǔ)區(qū);new和malloc創(chuàng)建堆內(nèi)存。如 int* p = new int10; new int10在執(zhí)行時(shí)申請(qǐng)分配堆內(nèi)存,但指針p存放在棧中,存放的值為堆內(nèi)存的首地址。 C+中局部變量在定義時(shí),系統(tǒng)不會(huì)對(duì)其初始化;但全局變量,系統(tǒng)會(huì)對(duì)其默認(rèn)初始化。C+標(biāo)識(shí)符:1) C+ 標(biāo)識(shí)符是用來標(biāo)識(shí)變量、函數(shù)、類、模塊,或任何其他用戶自定義項(xiàng)目的名稱。一個(gè)標(biāo)識(shí)符以字母 A-Z 或 a-z 或下劃線 _ 開始,后跟零個(gè)或多個(gè)字母、下劃線和數(shù)字(0-9)。2) C+

5、標(biāo)識(shí)符內(nèi)不允許出現(xiàn)標(biāo)點(diǎn)字符,比如 、$ 和 %。C+ 是區(qū)分大小寫的編程語言。typedef 聲明:作用:為一個(gè)已有的類型取一個(gè)新的名字。語法:typedef type newName;C+常量:字面值、#define,const。C+存儲(chǔ)類修飾符:1) auto是所有局部變量默認(rèn)的存儲(chǔ)類,auto只能用在函數(shù)內(nèi)部,即auto只能修飾局部變量;2) register用于定義存儲(chǔ)在寄存器中的局部變量,不能對(duì)其取址(&),因?yàn)樗鼪]有內(nèi)存地址;3) static指示編譯器在程序的生命周期內(nèi)保持局部變量的存在,而不需要在每次它進(jìn)入和離開作用域時(shí)進(jìn)行創(chuàng)建和銷毀。static修飾局部變量可以在函數(shù)

6、調(diào)用之間保持局部變量的值;static修飾全局變量時(shí),會(huì)使變量的作用域限制在聲明它的文件內(nèi);4) extern提供了一個(gè)全局變量或全局函數(shù)的引用,通過extern聲明,可以訪問其它文件中定義的全局變量,要求這些文件必須在同一工程目錄下,否則只能用#include導(dǎo)入;5) mutable 修飾符僅適用于類的對(duì)象。在C+中,mutable是為了突破const的限制而設(shè)置的。被mutable修飾的變量(mutable只能用于修飾類的非靜態(tài)數(shù)據(jù)成員),將永遠(yuǎn)處于可變的狀態(tài),即使在一個(gè)const函數(shù)中。const的用法:1) const修飾普通變量和指針:i. const修飾變量:const

7、 type value或者 type const valueii. const修飾指針:a) 指針本身是常量不可變:type* const pointer;b) 指針?biāo)赶虻膬?nèi)容是常量不可變:const type* pointer或者type const *pointer;c) 兩者都不可變:const type* const pointer;注意:識(shí)別const到底是修飾指針還是指針?biāo)傅膶?duì)象,還有一個(gè)較為簡(jiǎn)便的方法,也就是沿著*號(hào)劃一條線:如果const位于*的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞?,即指針指向?yàn)槌A浚蝗绻鹀onst位于*的右側(cè),const就是修飾指針本身,即指針本

8、身是常量。2) const修飾函數(shù)參數(shù):它表示在函數(shù)體中不能修改參數(shù)的值i. void function(const int Var);     /傳遞過來的參數(shù)在函數(shù)內(nèi)不可以改變(無意義,該函數(shù)以傳值的方式調(diào)用)ii. void function(const char* Var);   /參數(shù)指針?biāo)竷?nèi)容為常量不可變iii. void function(char* const Var);   /參數(shù)指針本身為常量不可變(無意義,var本身代表地址也是通過傳值的形式賦值的)iv. vo

9、id function(const Class& Var); /引用參數(shù)在函數(shù)內(nèi)不可以改變注意:參數(shù)const通常用于參數(shù)為指針或引用的情況,若輸入?yún)?shù)采用“值傳遞”方式,由于函數(shù)將自動(dòng)產(chǎn)生臨時(shí)變量用于復(fù)制該參數(shù),該參數(shù)本就不需要保護(hù),所以不用const修飾。3) const 修飾類對(duì)象/對(duì)象指針/對(duì)象引用:表示該對(duì)象為常量對(duì)象,其中的任何成員都不能被修改。同時(shí),該對(duì)象的任何非const成員函數(shù)都不能被調(diào)用,因?yàn)槿魏畏莄onst成員函數(shù)都會(huì)有修改成員變量的企圖。4) const修飾成員變量:表示該數(shù)據(jù)成員只在某個(gè)對(duì)象的生存期內(nèi)是常量,而對(duì)于整個(gè)類而言是可變的。因?yàn)轭惪梢詣?chuàng)建多個(gè)對(duì)象,不

10、同的對(duì)象其const數(shù)據(jù)成員的值可以不同,所以不能在類定義中初始化const數(shù)據(jù)成員(類對(duì)象未被創(chuàng)建時(shí),編譯器不知道const數(shù)據(jù)成員的值),而只能在類的構(gòu)造函數(shù)的初始化列表中初始化。5) const修飾成員函數(shù):表示const修飾的成員函數(shù)不能改變類的成員變量,也就不能調(diào)用非const成員函數(shù)。一般把const寫在成員函數(shù)的最后,如void function()const。6) const常量與define宏定義的區(qū)別:i. 編譯器的處理方式不同:define宏是在預(yù)處理階段展開;const常量是在編譯運(yùn)行階段使用。ii. 類型和安全檢查不同:define宏沒有類型,不做任何類型檢查,僅僅是

11、展開;const常量有具體類型,在編譯階段會(huì)執(zhí)行類型檢查。iii. 存儲(chǔ)方式不同:define宏僅僅是展開,在什么地方使用,就在什么地方展開,不分配內(nèi)存;const常量會(huì)在內(nèi)存中分配(可以是堆也可以是棧)。volatile關(guān)鍵字:volatile關(guān)鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如操作系統(tǒng)、硬件或者其它線程等。遇到這個(gè)關(guān)鍵字聲明的變量,編譯器對(duì)訪問該變量的代碼就不再進(jìn)行優(yōu)化,從而可以提供對(duì)特殊地址的穩(wěn)定訪問。精確地說就是,優(yōu)化器在用到這個(gè)變量時(shí)必須每次都從內(nèi)存中讀取這個(gè)變量的值,而不是使用保存在寄存器里的備份。運(yùn)算符:1. :表示補(bǔ)碼運(yùn)算符,用于各

12、位取反,但沒有 = 賦值運(yùn)算符;2. :表示異或運(yùn)算符;3. 條件運(yùn)算符:var = (var1 比較運(yùn)算符 var2)? var3 :var4;4. 逗號(hào)運(yùn)算符:var = (表達(dá)式1,表達(dá)式2,)整個(gè)逗號(hào)表達(dá)式的值是以逗號(hào)分隔的列表中的最后一個(gè)表達(dá)式的值;5. 點(diǎn)(.)運(yùn)算符:點(diǎn)運(yùn)算符應(yīng)用于實(shí)際的對(duì)象;箭頭(->)運(yùn)算符:箭頭運(yùn)算符與一個(gè)指向?qū)ο蟮闹羔樢黄鹗褂?;點(diǎn)運(yùn)算符和箭頭運(yùn)算符用于訪問引用類、結(jié)構(gòu)和共用體的成員。Switch語句:1. 語法:switch (expression)case constant-expression:statement(s);break;case co

13、nstant-expression:statement(s);break;default :statement(s);2. 規(guī)則:i. switch 語句中的 expression 必須是一個(gè)int、char或enum。 ii. 在一個(gè) switch 中可以有任意數(shù)量的 case 語句。每個(gè) case 后跟一個(gè)要比較的值和一個(gè)冒號(hào)。iii. case 的 constant-expression 必須與 switch 中的變量具有相同的數(shù)據(jù)類型,且必須是一個(gè)常量或字面量。iv. 當(dāng)被測(cè)試的變量等于 case 中的常量時(shí),case 后跟的語句將被執(zhí)

14、行,直到遇到 break 語句為止。v. 當(dāng)遇到 break 語句時(shí),switch 終止,控制流將跳轉(zhuǎn)到 switch 語句后的下一行。vi. 不是每一個(gè) case 都需要包含 break。如果 case 語句不包含 break,控制流將會(huì) 繼續(xù) 后續(xù)的 case,直到遇到 break 為止。vii. 一個(gè) switch 語句可以有一個(gè)可選的 default case,出現(xiàn)在 switch 的結(jié)尾。default case 可用于在上面所有 case 都不為真時(shí)執(zhí)行一個(gè)任務(wù)。

15、default case 中的 break 語句不是必需的。Printf和Scanf函數(shù)的用法:1. Printf函數(shù):i. 原型:printf("格式化字符串", <變量列表>);ii. 格式化字符串:格式化字符串包括兩部分內(nèi)容: 一部分是正常字符, 這些字符將按原樣輸出; 另一部分是格式化規(guī)定字符, 以"%"開始, 后跟一個(gè)或幾個(gè)規(guī)定字符, 用來確定輸出內(nèi)容格式。iii. 格式化字符串格式:%標(biāo)志輸出最小寬度.精度長(zhǎng)度格式化字符串類型。1. 標(biāo)志:+表示輸出符號(hào)(正號(hào)或負(fù)號(hào));-表示結(jié)果左對(duì)齊,右邊填空格;空格表示輸出

16、為正時(shí)冠以空格,輸出為負(fù)時(shí)冠以負(fù)號(hào);# 對(duì)c, d, s, u類無影響,對(duì)o類輸出時(shí)加前綴o,對(duì)x類輸出時(shí)加前綴Ox。2. 輸出最小寬度:用十進(jìn)制整數(shù)來表示輸出的最少位數(shù)。a) 若實(shí)際位數(shù)多于定義的寬度:則按實(shí)際位數(shù)輸出。b) 若實(shí)際位數(shù)少于定義的寬度:則右對(duì)齊,左邊留空。c) 表示寬度的數(shù)字以負(fù)號(hào)開始,左對(duì)齊,右邊留空。d) 表示寬度的數(shù)字以0開始,則右對(duì)齊,左邊補(bǔ)0。e) 表示寬度的數(shù)字既有負(fù)號(hào)又有0,左對(duì)齊,右邊留空。3. 精度:精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)(針對(duì)浮點(diǎn)數(shù)和字符串)。意義是:a) 如果輸出數(shù)字,則表示小數(shù)的位數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則四舍五入。若不足則補(bǔ)

17、0;b) 如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過的部分。不足按實(shí)際字符個(gè)數(shù)輸出。4. 長(zhǎng)度:長(zhǎng)度格式符為h、l兩種,h表示按短整型量輸出,l表示按長(zhǎng)整型量輸出。5. 格式化字符串類型:格式字符意義d以十進(jìn)制形式輸出帶符號(hào)整數(shù)(正數(shù)不輸出符號(hào))o以八進(jìn)制形式輸出無符號(hào)整數(shù)(不輸出前綴0)x,X以十六進(jìn)制形式輸出無符號(hào)整數(shù)(不輸出前綴Ox)u以十進(jìn)制形式輸出無符號(hào)整數(shù)f以小數(shù)形式輸出單、雙精度實(shí)數(shù)e,E以指數(shù)形式輸出單、雙精度實(shí)數(shù)g,G以%f或%e中較短的輸出寬度輸出單、雙精度實(shí)數(shù)c輸出單個(gè)字符s輸出字符串(char數(shù)組類型,因?yàn)閏語言沒有String類型

18、)2. Scanf函數(shù):i. 原型:scanf("格式化字符串", <地址表>)ii. 格式化字符串:a) 格式化說明符:與printf()函數(shù)中的格式化字符串類型基本相同。b) 空白符:空白字符會(huì)是scanf()函數(shù)在讀操作時(shí)略去輸入的一個(gè)或多個(gè)空白字符c) 非空白符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀操作時(shí)剔除掉與這個(gè)非空白字符相同的字符。iii. 地址表:需要讀入的所有變量的地址,而不是變量名。各地址之間用逗號(hào)隔開。a) 如果是一般的變量,通常要在變量名前加上"&";但輸出時(shí)是用變量名。b) 如果是數(shù)組,用數(shù)組名就代表了該

19、數(shù)組的首地址;輸出時(shí)也是用數(shù)組名(一般用于char型數(shù)組,即字符串)。c) 如果是指針,直接用指針名本身,不要加上“*”;輸出時(shí)要加“*”,但是字符串不需要加。iv. 格式化字符串的格式:%輸入數(shù)據(jù)的寬度長(zhǎng)度類型。1. 寬度:用十進(jìn)制整數(shù)指定輸入的寬度(即字符數(shù))。2. 長(zhǎng)度:長(zhǎng)度格式符為h和l,l表示長(zhǎng)整型數(shù)據(jù)(%ld)和雙精度浮點(diǎn)型數(shù)據(jù)(%lf)。h表示短整型數(shù)據(jù)。3. “*”符:用以表示該輸入項(xiàng),讀入后不賦予相應(yīng)的變量,即跳過該輸入值。4. 長(zhǎng)度 長(zhǎng)度格式符為l和h,l表示輸入長(zhǎng)整型數(shù)據(jù)(如%ld) 和雙精度浮點(diǎn)數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。5. 類型:表示輸入數(shù)據(jù)的類型。格式

20、字符意義 d 輸入十進(jìn)制整數(shù) o 輸入八進(jìn)制整數(shù) x 輸入十六進(jìn)制整數(shù) u 輸入無符號(hào)十進(jìn)制整數(shù) f或e 輸入實(shí)型數(shù)(用小數(shù)形式或指數(shù)形式) c 輸入單個(gè)字符 s 輸入字符串v. 注意:1. Scanf()函數(shù)中沒有精度控制,如scanf(“%5.2f”, &a); 是非法的。2. 在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如對(duì)“%d”輸入“12A”時(shí),A即為非法數(shù)據(jù))時(shí)即認(rèn)為該數(shù)據(jù)結(jié)束。隨機(jī)函數(shù):i. Rand()函數(shù):a) 功能:隨機(jī)數(shù)發(fā)生器b) 用法:int rand();c)

21、頭文件:stdlib.h說明:用戶未設(shè)定隨機(jī)數(shù)種子時(shí),系統(tǒng)默認(rèn)的隨機(jī)數(shù)種子為1。rand()產(chǎn)生的是偽隨機(jī)數(shù)字,每次執(zhí)行時(shí)是相同的;若要不同,用函數(shù)srand()初始化它。ii. Srand()函數(shù):a) 功能:初始化隨機(jī)數(shù)發(fā)生器,即設(shè)置隨機(jī)數(shù)種子b) 用法:void srand(unsigned int seed);c) 頭文件:stdlib.h說明:如果每次seed都設(shè)相同值,rand()所產(chǎn)生的隨機(jī)數(shù)值每次就會(huì)一樣。iii. 產(chǎn)生變化隨機(jī)數(shù)的方法:在開始產(chǎn)生隨機(jī)數(shù)前,調(diào)用一次srand(time(NULL)(注意:srand()一定要放在循環(huán)外面或者是循環(huán)調(diào)用的外面,否則的話得到的是相同

22、的隨機(jī)數(shù))注意:time(0|NULL)的頭文件是time.hC+數(shù)組所有的數(shù)組都是由連續(xù)的內(nèi)存位置組成。最低的地址對(duì)應(yīng)第一個(gè)元素,最高地址對(duì)應(yīng)最后一個(gè)元素。a) 聲明數(shù)組:必須指定元素類型和元素?cái)?shù)量。Type arrayNamearraySize;b) 初始化數(shù)組:可以逐個(gè)初始化數(shù)組,也可以使用一個(gè)初始化語句。初始化語句使用,而大括號(hào) 之間的值的數(shù)目不能大于我們?cè)跀?shù)組聲明時(shí)在方括號(hào) 中指定的元素?cái)?shù)目。如果您省略掉了數(shù)組的大小,數(shù)組的大小則為初始化語句中元素的個(gè)數(shù)注意:C、C+中沒有提供直接獲取數(shù)組大小的函數(shù),只提供了strlen函數(shù)用于獲取存放字符串的字符數(shù)組的長(zhǎng)度。c) 二維數(shù)組:本質(zhì)是一

23、個(gè)一維數(shù)組列表。i. 初始化:通過在括號(hào)內(nèi)為每行指定值來進(jìn)行初始化。如:int a34 = 0,1,2,3,4,5,6,7,8,9,10,11;d) 指向數(shù)組的指針:指向數(shù)組的指針變量可以自增,但數(shù)組名作為常量指針不能自增。但當(dāng)數(shù)組作為形參時(shí)(可以不指定數(shù)組大小),數(shù)組名表示的是指針變量可以自增運(yùn)算。注意:數(shù)組名可以作為常量指針。即可以使用*(ArrayName+i)訪問第i個(gè)元素。e) 數(shù)組形參:C+ 不允許向函數(shù)傳遞一個(gè)完整的數(shù)組作為實(shí)參,但可以通過指定不帶索引的數(shù)組名來傳遞一個(gè)指向數(shù)組的指針。形參可以是完整的數(shù)組。i. 形參函數(shù)定義:1. 方式一:type function(type *

24、param);2. 方式二:type function (type arraynamearraysize);3. 方式三:type function (type arrayname);f) 數(shù)組型返回類型:C+ 不允許返回一個(gè)完整的數(shù)組作為函數(shù)的返回值以及返回類型,但可以通過指定不帶索引的數(shù)組名來返回一個(gè)指向數(shù)組的變量指針。i. 返回?cái)?shù)組的函數(shù)定義:type * function();注意:C+ 不支持在函數(shù)外返回局部變量的地址,除非定義局部變量為 static 變量。而且也不支持函數(shù)的嵌套定義。字符串:a) 風(fēng)格字符串:字符串實(shí)際上是使用null字符0終止的一維字符數(shù)組。b) 聲明和初始化:char strsize = 初始化列表(size大小是實(shí)際字符串長(zhǎng)度+1,初始化列表的結(jié)尾是0);char str = “字符串”(不需要末尾添加0);char* str=“字符串”。但Strlen(str)得到的長(zhǎng)度是實(shí)際字符串的長(zhǎng)度,即不包含0.注意:cout 輸出char 的數(shù)組名和指針名時(shí)調(diào)用了系統(tǒng)函數(shù)處理,輸出的是字符串不是地址。其他類型的是地址。c) 字符串操作函數(shù):i. strcpy(s1,s2):復(fù)制字符串s2到s1。ii. strcat(s1,s2):連接字符串s2到s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論