達(dá)內(nèi)技術(shù)手冊_第1頁
達(dá)內(nèi)技術(shù)手冊_第2頁
達(dá)內(nèi)技術(shù)手冊_第3頁
達(dá)內(nèi)技術(shù)手冊_第4頁
達(dá)內(nèi)技術(shù)手冊_第5頁
已閱讀5頁,還剩97頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.專題技術(shù)手冊內(nèi)容主要包括unix,c+,java,ooad,xml,jdbc,hibernate,java Web,ejb,spring等等。本手冊中使用了一些符號來表示特殊內(nèi)容,為了方便讀者查閱,將符號說明如下:注意案例參考Unix常用命令系統(tǒng)命令登陸與登出telnet 主機(jī)IPtelnet 3login: 用戶名passwd:密碼退出系統(tǒng)exit:不同shell相互交換退出ctrl+D:結(jié)束終端輸入ctrl+c:工作一半輸出還要繼續(xù)工作修改密碼passwd(6-8個字符)old passwd: 原密碼new passwd:新密碼confirm passwd:確認(rèn)密碼

2、目錄命令改變當(dāng)前工作目錄cd:改變當(dāng)前工作目錄。后面可以是絕對路徑也可以是相對路徑cd :回到用戶主目錄cd 目錄名:改變當(dāng)前目錄到指定的目錄cd . :改變當(dāng)前目錄到上一極目錄cd . :回到當(dāng)前目錄顯示當(dāng)前工作目錄pwd:顯示當(dāng)前工作目錄列出指定目錄下的文件和子目錄ls:列出指定目錄下的文件和子目錄ls a 列出目錄下的所有子目錄,文件,隱藏文件(以.開頭的文件)ls R 從當(dāng)前目錄開始列出所有的子目錄結(jié)構(gòu),文件;并一層一層地往下顯示ls t 以修改時間為序來列出文件、子目錄、ls l 以長列表的形式列出文件,子目錄信息 也就是他們的屬性ls F 列出文件,子目錄及文件類型(*可執(zhí)行文件,

3、軟鏈接文件,/:目錄,無:普通文件)權(quán)限控制文件:r打開文件來查看內(nèi)容,如cat,more命令就需要讀權(quán)限 w可以更改文件內(nèi)容,如cp,vi命令要求有寫權(quán)限 x可以執(zhí)行這個文件(必須是可執(zhí)行文件*.sh)目錄:r查看目錄的內(nèi)容,文件和子目錄。如ls要求有讀權(quán)限 w可以在該目錄中創(chuàng)建,刪除,移動子目錄或文件。如touch,rm,rmdir,cp,mkdir要求有寫權(quán)限 x你是否能進(jìn)入這個目錄 cd修改權(quán)限:chmod u/g/o +/- r/w/x 文件或目錄名chmod nnn為數(shù)字 文件/目錄名chmod u+r,g-w,o=x file1, chmod 655 file普通文件常用權(quán)限:6

4、44;目錄常用的權(quán)限是:755創(chuàng)建目錄創(chuàng)建目錄:mkdirmkdir dir1 dir2 dir3 在當(dāng)前目錄中創(chuàng)建3個目錄 他們?yōu)橥壞夸沵kdir dir9/dir4 在當(dāng)前目錄中dir9目錄創(chuàng)建一個目錄dir4,但是dir9目錄必須存在mkdir /dir5 在用戶主目錄下創(chuàng)建dir5mkdir p dir6/dir7/dir8 在當(dāng)前目錄中創(chuàng)建一個目錄結(jié)構(gòu) dir6存在不存在都可以文件命令創(chuàng)建文件創(chuàng)建文件:touch touch 文件名 文件存在,則更新該文件的最后一次修改時間 文件不存在,則創(chuàng)建一個新的空文件拷貝文件/目錄拷貝文件/目錄:cp cp sourcefile object

5、file 拷貝源文件為目標(biāo)文件 目標(biāo)文件不存在則新建目標(biāo)文件。把原文件的內(nèi)容放到新建文件中 目標(biāo)文件存在則用原文件的內(nèi)容覆蓋目標(biāo)文件的內(nèi)容 cp i sourcefile objectfile 拷貝文件,但若目標(biāo)已存在,則詢問是否覆蓋 如果是y則目標(biāo)文件中放的是源文件的內(nèi)容 如果是n則目標(biāo)文件中的內(nèi)容還是原來的內(nèi)容 cp r sourcedir objectdir 拷貝源目錄到目標(biāo)目錄 目標(biāo)目錄是否存在則它的拷貝內(nèi)容是不一樣的? 目標(biāo)目錄存在:源目錄為目標(biāo)目錄的子目錄 cp r wfx1 wfx2 wfx2存在目錄結(jié)構(gòu)為: wfx2 wfx1目標(biāo)目錄不存在:目標(biāo)目錄和源目錄同級 wfx2不存在

6、 則為 wfx1 wfx2移動文件/目錄移動文件/目錄:mv 源文件,源目錄都不存在mv sourcefile objectfile 源文件內(nèi)容覆蓋目標(biāo)文件,目標(biāo)文件不存在,則源文件改名為目標(biāo)文件(mv i 則覆蓋時詢問)mv sourcedir objectdir 目標(biāo)目錄存在則源目錄移動到目標(biāo)目錄中成為子目錄。目標(biāo)目錄不存在,則把源目錄的名字改為目標(biāo)目錄的名字刪除文件/目錄刪除文件/目錄:rm rmdir rm rrm file:刪除文件,rm i file詢問是否刪除文件rm file1 file2 file3 刪除多個文件rmdir dir:刪除目錄,但dir必須是空目錄rm r di

7、r1:刪除非空目錄,會刪除目錄中所有的內(nèi)容。這里會詢問我們要不要刪除rm rf dir3:刪除非空目錄,會刪除目錄中所有的內(nèi)容,不詢問我們到底要不要刪除。創(chuàng)建鏈接文件創(chuàng)建鏈接文件:ln ln s 被指向的源文件 建立的鏈接文件 :建立軟鏈接 首先我們修改任何一個文件內(nèi)容,另一個文件的內(nèi)容也相應(yīng)修改 刪除源文件以后。鏈接文件就不可以在操作。我們把安裝文件給刪除了??旖莘绞骄蜎]有用了 刪除鏈接文件不會影響到源文件。源文件還可以操作 ln 被指向的源文件 建立的鏈接文件 :建立硬鏈接 首先我們要是修改任何一個文件中的內(nèi)容,另一個文件也會相應(yīng)的修改。刪除源文件不會影響鏈接文件,刪除鏈接文件不會影響源文

8、件軟鏈接:abc(l:表示是軟鏈接文件)abc.txt(普通文件),abc文件中有abc.txt的inode號,abc指向abc.txt,就向windows中的快捷方式一樣,2個是不同的文件硬鏈接:abc與abc.txt都指向同一個inode的文件塊,是同一個文件幫助命令幫助命令:man 命令名;man空格:向后翻屏,b:向前翻屏,回車:向后滾動一行,/字符串:查找字符串特殊字符*:通配0或多個字符 ls d*?:通配一個字符 ls d?.txt:通配一個范圍中的任何一個字符 ls b-fb*;:命令的結(jié)束符,一次可執(zhí)行多條命令 cd;pwd:輸出重定向,將命令的執(zhí)行結(jié)果重新輸出到非標(biāo)準(zhǔn)輸出,

9、如文件。 cal 2 2002 file1 :輸入重定向,不從我們鍵盤的標(biāo)準(zhǔn)輸入,cat file2:以追加方式將命令的執(zhí)行結(jié)果輸出到非標(biāo)準(zhǔn)設(shè)備 cal 7 2002calfile|:將前一個命令的的執(zhí)行結(jié)果作為后一個命令的輸入 cat /etc/passwd | more查找文件查找文件查找:findfind path name filename :按文件名查找find path user0 username :按文件的擁有者查找 user0為root用戶 user1為soft用戶find path atime +10/-10 : 按文件的訪問時間來查找(+表示超過 表示不足)find pa

10、th mtime +/-days : 按文件的訪問時間來查找find path type f/d :按文件的類型來查找 f:查找文件;d:查找目錄find path perm 644/755 : 按文件的權(quán)限查找用戶查找who:查看當(dāng)前在線用戶的詳細(xì)信息用戶名 終端號 登陸時間 登陸機(jī)器的本地IPwho am I 總是自己,即登陸時的自己用戶名 終端號 登陸時間 登陸機(jī)器的本地IPwhoami 只查看用戶名w:查看當(dāng)前在線用戶的更詳細(xì)的信息USER(用戶名) TTY(終端號) FROM(本地IP) LOGIN(登陸time) IDLE JCPU) PCPU( 累計使用cpu時間) WHAT(執(zhí)

11、行命令)過濾文件和目錄grep 在命令結(jié)果或文件中進(jìn)行過濾grep root /etc/passwd 在這個文件中找出有root的行 ls al | grep -i sep 1 這里是忽略大小寫 xargs:它是分隔開的意思, ls f* | rm 這樣的寫法是錯誤的。我們找到這些文件要一個一個刪除 。因此 ls f* | xargs rm 才是正確的grep i 忽略大小寫 grep v 反向過濾 去掉有g(shù)rep這個單詞的那一行統(tǒng)計文件或執(zhí)行結(jié)果wc: 字符數(shù),行數(shù),單詞數(shù)wc c 統(tǒng)計字符數(shù) ls l | grep init | wc -cwc w 統(tǒng)計單詞數(shù)wc l 統(tǒng)計行數(shù)進(jìn)程啟動或創(chuàng)

12、建進(jìn)程ps :列出當(dāng)前終端啟動的進(jìn)程ps ef :列出當(dāng)前系統(tǒng)中運行的進(jìn)程,詳細(xì)列表列出uid(用戶Id) pid(進(jìn)程Id) ppid(父進(jìn)程Id) c(標(biāo)志位) stime(進(jìn)程啟動時間) tty(終端號) time(累計使用cpu的時間) cmd(進(jìn)程執(zhí)行的命令)ps ef | grep 用戶名終止或結(jié)束進(jìn)程Kill 進(jìn)程號 ;ctrl+c 殺掉終止進(jìn)程Kill -9 進(jìn)程號 可以殺掉終止某些高級的進(jìn)程Sleep:創(chuàng)建休眠進(jìn)程Sleep 1000 &1(作業(yè)號) pid(進(jìn)程號) sleep(休眠命令)fg%n(作業(yè)號):將進(jìn)程放到前臺bg%n :將進(jìn)程放到后臺stop%n 暫停進(jìn)程;c

13、trl+z 把這個進(jìn)程給掛起kill%n : 終止進(jìn)程網(wǎng)絡(luò)命令ftp:文件傳輸ftp 50lirui 123456cd:改變遠(yuǎn)程服務(wù)器的當(dāng)前目錄lcd:改變本地的當(dāng)前目錄dir:查看遠(yuǎn)程機(jī)器的當(dāng)前目錄內(nèi)容get:從服務(wù)器上下載一個文件(mget 多個文件名)put:從本地機(jī)器上傳一個文件到服務(wù)器(mput)hash:開關(guān)變量(on/off)設(shè)置傳輸大文件過程中,每傳輸2k字節(jié)顯示一個#prompt:開關(guān)變量,設(shè)置在傳輸多個文件時,是否給提示on /offls:查看遠(yuǎn)程當(dāng)前目錄內(nèi)容文件的查看cat 不分屏查看文件內(nèi)容;可以將多個文件連接成一個大文件cat filenamec

14、at file1 file2 file3cat /dev/null /b.txt : b.txt存在,將這個文件清空; b.txt不存在,則創(chuàng)建一個空文件more:分屏顯示 more filename ls al |more空格:翻滾到下一屏,b:上一屏,f:下一屏,回車:下一行,/字符串tail -n(n是行數(shù)) 從尾行往上看head n 從首行看默認(rèn)為10行文件編輯文件編輯:vivi的三種模式:命令模式,輸入模式,最后行模式輸入模式:i:在光標(biāo)當(dāng)前位置開始編輯 a:在當(dāng)前位置之后編輯 o:在當(dāng)前光標(biāo)位置的下一行編輯光標(biāo)移動:h:向左移動,l:向右移動,j:下移一行,k:上移一行 $:到行尾

15、,:到行首,G:到最后一行,nG,1G文本操作:x:刪除光標(biāo)所在位置的一個字符 dw刪除從標(biāo)位置開始的一個單詞 dd:刪除光標(biāo)所在的一行 5dd:就是刪除5行 :5,10d把5到行給刪除 r:替換光標(biāo)所在的字符 cw:替換光標(biāo)開始的一個單詞 cc:替換光標(biāo)所在行 C:替換從光標(biāo)到行尾 yw:拷貝光標(biāo)開始的一個詞 yy:拷貝光標(biāo)所在的一行 p:在當(dāng)前光標(biāo)所在的行的下方粘貼、 :1,2co3把1.2行拷貝一份防到3行后面 :4,5m6把4,5行移動到6行之后 文件操作:q!:強(qiáng)制退出,wq!:保存文件并退出 ZZ :set nu 顯示行號 :set nonu 把行號給去掉系統(tǒng)初始化文件與環(huán)境變量b

16、sh:系統(tǒng)初始化文件 /etc/.profile 用戶初始化文件 $HOME/.profilecsh:系統(tǒng)初始化文件 /etc/.login 用戶初始化文件:$HOME/.cshrc .login .logout環(huán)境變量bash/bsh: set 變量名=value; export 變量名csh:setenv 變量名 value set 變量名=valueecho $變量名path:告訴系統(tǒng)在執(zhí)行命令時,在哪個路徑下找該命令的可執(zhí)行文件。set path=( ) set path=($path newpath) which 命令名 :顯示當(dāng)前執(zhí)行的命令所在的路徑whereis 命令名:顯示命令

17、所在的各個路徑JAVA_HOME:java(jdk)的安裝目錄CLASSPATH:Java 的類路ORACLE_SID:訪問oracle的idMANPATH:幫助手冊shell腳本Shell腳本的編寫:1vi 文件名.sh#!/bin/sh 說明命令的/bin/sh去執(zhí)行下面的命令pwdcaldate2.增加執(zhí)行權(quán)限Shell 腳本默認(rèn)是沒有執(zhí)行權(quán)限的,所以使用chmod u+x 名字.sh3.運行shell 腳本./名字.sh 運行系統(tǒng)調(diào)度計劃在特定時間調(diào)度系統(tǒng)中的某個程序執(zhí)行,常常用于系統(tǒng)維護(hù)工作crontab l 查看當(dāng)前系統(tǒng)中的調(diào)度計劃crontab e 編輯當(dāng)前系統(tǒng)中的調(diào)度計劃 cr

18、ontab -r 刪除當(dāng)前系統(tǒng)中的調(diào)度計劃一般計劃程序都是用shell腳本編寫的,編寫內(nèi)容如下:15 16 12 * 3 a.sh15:分鐘 0-59; 16:小時0-23;12:日期1-28/29/30/31 *:月份1-12 3:星期1-7 a.sh在當(dāng)前目錄下編好的shell腳本這個調(diào)度計劃表示在每個月12號,并且那天是星期三的16:15分啟動a.sh執(zhí)行其他命令回顯命令:echoecho $WTO:顯示變量值;echo “$WTO”:“”表示顯示變量值;echo $WTO 單引號括起的內(nèi)容被作為字符串,顯示$WTOecho $WTO $轉(zhuǎn)義符 ,這樣$就代表本身這個符號 結(jié)果為$WTO

19、而不是WTO里的值歷史記錄命令:Historyset history=30 :設(shè)置系統(tǒng)自動保留前面的30條命令,設(shè)置系統(tǒng)自動保留的歷史記錄數(shù)history :顯示最近使用的命令,顯示的命令個數(shù)由set history來決定history n :顯示最近使用的n個命令!n 調(diào)用第n 條命令 ;! 調(diào)用上一次執(zhí)行的命令執(zhí)行替換命令:aliasalias 代替名 被替代的命令alias h history : h替代history命令 ; alias c clear c替代clear命令alias home cd;ls home 替代cd;ls命令組 alias 列出已經(jīng)建立了的替代的命令列表una

20、lias copy 取消建立的copy替代的命令core c+c+基礎(chǔ)語法字符集字符集就是說可以出現(xiàn)在源程序中的東西 1:26個大小寫字母 2:0 1 2 3 4 5 6 7 8 9 3:_ 下劃線 4:+ - * / % = 5:.,:? | ! # & 6: () 7:空格保留字c+給他們賦予了特殊的含義,我們要避免使用它!這樣會發(fā)生沖突!我們也不必要死記 這些東西。平時注意一些就可以了變量和常量變量1、變量 常量都存儲在內(nèi)存中,不同類型的變量 常量的存儲空間大小是不一樣的 變量的值不可以超過他的取值范圍.超過取值范圍會發(fā)生溢出2、變量類型 變量名字;定義或是聲明一個變量 變量名字=值;給

21、變量賦值 int a; a=5; 變量類型 變量名字=值; 初始化 int b=6;常量 1、常量只能必須在定義它的時候給它值。之后就不可以在以任何方式修改它的值 const 類型 常量名字=值; const int e=6; 類型 const 常量名字=值; int const f=8;命名 (1) 第一個字母必須是字母或是下劃線 建議一般是以字母開頭!臨時變量的時候以_開頭 (2) 只能使用字母或下劃線 數(shù)字 (3) 中間不能有空格 (4) 不能是保留字,不能和數(shù)據(jù)類型同名 (5) 嚴(yán)格區(qū)分大小寫 (6) 使用易懂的變量名 (7) 長度一般不要超過32個字符類型 類型的長度: sizeof

22、(類型) 或 sizeof(變量名字) (1)整型 無符號:unsigned 最高為不是符號位。因為這樣它放的數(shù)據(jù)會更大些 默認(rèn)為有符號類: int ,unsigned int ,signed int short int ,unsigned short int,signed short int long int ,unsigned long int ,signed long int (2)字符型 char,unsigned char ,signed char (3)實型 float double long double (4)邏輯型 bool 值為true 或 false (5)空類型 voi

23、d 它是不確定類型,不能直接用來定義變量。因為變量定義的時候必須有確定的類型,才可以適當(dāng)?shù)姆峙淇臻g (6)字面值: 特殊常量 例如直接的數(shù)字100 直接字符 A 直接字符串“good 直接的布爾值 true 和false (7)其他類型 enum 枚舉類型 struct結(jié)構(gòu)類型 array數(shù)組 相同類型變量集合 pointer 指針 保存各種變量地址 class 類3.5默認(rèn)為double類型 。要為float則寫3.5f 5默認(rèn)為int類型。要為long則寫5l運算符 0為假 1為真 運算符只是運算而不會修改變量原來的值 強(qiáng)轉(zhuǎn)是暫時的。變量聲明類型就是固定不變 運算符優(yōu)先級 1: ()為最高

24、優(yōu)先級。當(dāng)我們想按自己的想法去做!對優(yōu)先級不是很清楚!就可以加() 下標(biāo)運算符 數(shù)組 :域操作符 類 .取成員操作符 類 -指針取成員操作符 2: .*取成員指針操作符 -*指針取成員指針操作符 3: ! 邏輯非 按位取反 例如:-1的二進(jìn)制 11111111 則(-1)為00000000 + 正號 - 負(fù)號 + 自增1 +i:表達(dá)式會加1 最后i也會加1 i+: 表達(dá)式不變 最后i會加1 - 自減1 -i:表達(dá)式會減1 最后i也會減1 i-:表達(dá)式不變 最后i會減1 &取變量地址 * 取指針指向的變量 (類型) 強(qiáng)制類型轉(zhuǎn)換 sizeof()取數(shù)據(jù)類型長度 new 動態(tài)給變量分配空間 del

25、ete 釋放動態(tài)分配空間 4: * 相乘 / 相除 % 相余 5: +相加 -相減 6: 非負(fù)數(shù)右移位缺的補(bǔ)0 。負(fù)數(shù)右移位缺的補(bǔ)1 右移位 右移1位 除2 當(dāng)然我們右移幾位,就除幾個2 7: 小于 大于 =大于或者等于 8: = 等于 != 不等于 9: & 按位相與 只要有0則為0 10: 按位異或 只要相同則為0不同為1 11: | 按位或 只要有1則為1 12: & 邏輯與 短路運算符 意思就是說只要最左邊遇到了假那么后面的就不再判斷整個為假 一般會和前加加 ,后加加 ,前減減 后減減連用 13: | 邏輯或 短路運算符 意思就是說只要最左邊遇到了真那么后面的就不再判斷整個為真 一般會

26、和前加加 ,后加加 ,前減減 后減減連用 14: ?:條件運算符 三目運算符:兩邊的數(shù)據(jù)為相同類型 (表達(dá)式)?(數(shù)據(jù)1):(數(shù)據(jù)2) 表達(dá)式為真則取數(shù)據(jù)1,表達(dá)式為假則取數(shù)據(jù)215: = 賦值 *=自乘以 /=自除以 %=自求余 +=自增加 -=自減少 =自右移位 &=自按位相與 |=自按位相或 =自按位異或16: 逗號表達(dá)式 總是依次計算逗號分隔的各個部分的結(jié)果.最后一部分就是整個表達(dá)的結(jié)果 例如(a=1,b=a,c=a+b,d=c+5)=8 因為逗號表達(dá)式的結(jié)果為d 因為這樣寫是正確的 (a=0,b=a+5,b+2)=9這樣寫是錯誤的,因為逗號表達(dá)式的結(jié)果為兩個數(shù)據(jù)和的臨時值 不能做為左

27、值.那就順便說一下左值和右值 左值:就是放在等號左邊。我們可以再給它賦值 賦值表達(dá)式就是左值。+a也是左值 (a=5)=6; (+a)=5; 右值:就是放在等號右邊。小的規(guī)則: 前三名 括號 成員 單目 后三名 逗號表達(dá)式 賦值 三目注釋 1:單行注釋 / 2:多行注釋/* */ 多行注釋里可以有單行注釋、 但是不可以再有多行注釋編譯c+ 1: g+ -c hello.cc 會生成.o文件 hello.o 編譯.cc文件 g+ -o hello hello.o 我們給可執(zhí)行文件起了別名hello不在用a.out 連接 hello 執(zhí)行可執(zhí)行文件 2: g+ -o hello hello.cc

28、3: g+ hello.cc a.out頭文件 #include 系統(tǒng)文件 #include 自己寫的文件 我們自己寫的文件要遵守。c+中的語法。基本輸入,輸出語句 cin需要輸入數(shù)據(jù)的變量。 在cin輸入的時候,多個數(shù)據(jù)用(空格, 制表符Tab,回車)分隔 習(xí)慣上我們要在輸入之前都會先輸出提示信息提示用戶輸入數(shù)據(jù) int a; couta; couta;特殊符號r:回車符 就是回到本行開頭做輸出。cout”abcdref”endl; 結(jié)果就是efcdn:換行符 cout”abns”endl; 結(jié)果: ab st:制表符 cout”atb”endl;結(jié)果就是 a b 就好象我們按Tab鍵a:小

29、喇叭聲響:為轉(zhuǎn)義字符 cout”ascd”反轉(zhuǎn)= +1 -1的二進(jìn)制: 00000001 = 11111110 - 11111111控制語句if語句 (1) if(條件) 一定要記住要寫=. 不要寫成=那就成了賦值只要條件不為0則就是真0為假那么if語句里的代碼塊就不執(zhí)行0,false ,0ASCII為0,NULL這些在表達(dá)式中都是假0的ASCII為48語句塊例如: if(score =0) coutinput ok!endl;(2) if(條件)語句塊else語句塊例如: if(choice=y) coutstart another game .endl; else cout3Q,bye!e

30、ndl; (3) 級聯(lián)使用if(條件)語句塊else if(條件)語句塊else if(條件)語句塊else語句塊例如: if(score=100) / 這里判斷相等用 = 不是=coutA=90) coutB=80)coutCendl;elsecoutDendl;for循環(huán)語句for 語句使用:一般我們都是在知道次數(shù)的時候使用格式:for(int i=0;i5;i+) / int i=0 是初始化 i5 是條件 i+ 是調(diào)整語句 語句塊(循環(huán)體) / 條件為真,執(zhí)行代碼 執(zhí)行過程: 先是for第一部分-初始化,再判斷條件是否為真,若為真,進(jìn)入循環(huán)體,執(zhí)行代碼,之后再回到for第三部分-改變i

31、的值,再去條件判斷,只要條件為真,一直如此循環(huán)。直到條件為假,跳出循環(huán)體,執(zhí)行循環(huán)體以外的代碼。如果第一次條件判斷為假,直接不進(jìn)循環(huán)體,執(zhí)行循環(huán)體以外的代碼。注意:條件如果永遠(yuǎn)為真,則是死循環(huán)!i 變量只能在循環(huán)中使用。例如: int n=6;for(int i=0;in;i+)cout *6) n-; cout*; do語句塊(循環(huán)體) / 不管條件為真還是假,都先執(zhí)行代碼 while(條件); /條件來決定是否再循環(huán) 這個地方不要少了分號switch多路選擇語句switch 分支語句 switch(表達(dá)式) case n1: .break;case n2:.break; /表示退出分支。c

32、ase n3:.break;default: / 如果沒有case匹配入口,默認(rèn)入口 它是可寫可不寫。.break;執(zhí)行過程:根據(jù)表達(dá)式的結(jié)果,來跟每個case 后的值相匹配,匹配上就執(zhí)行這個分支的代碼,執(zhí)行完,由break退出,如果沒有匹配的,執(zhí)行默認(rèn)的匹配入口。例如:switch(score/10)case 1:coutAendl;break;case 2: coutBendl;break;case 3:coutCendl;break;default:coutDendl;break;break/continue/return語句用在這些循環(huán)語句中的其他語句解說 break:跳出本層循環(huán),執(zhí)

33、行后面的語句 continue:結(jié)束本次循環(huán)。進(jìn)入下一次循環(huán) return 是用來從函數(shù)中返回的,返回本函數(shù)執(zhí)行以后的結(jié)果其他數(shù)據(jù)類型BULE=201枚舉 枚舉 : 讓數(shù)據(jù)含義更直觀,便于理解,一種類型。 格式: enum color RED,GREEN,BLUE 或者RED=100,GREEn=200,BULE,CLACK=400; (1)大括號里的值,默認(rèn)從0開始,依此遞增。eg: RED=0,GREEN=1,BLUE=3 (2)變量的值只能是大括號里的值。 (3)定義類型是語句后面要加分號。 (4)一般,定義類型都要在main函數(shù)外面。 (5)我們可以指定其中若干個變量的值,然后就從指定

34、的值開始遞增 enum color RED,GREEN,BLUE,WHITE;int main()color c;coutRED=REDendl;if(c=GREEN)coutGreen one!endl;return 0;輸出 RED=0數(shù)組 一維數(shù)組:是若干相同類型變量的集合。定義:元素類型 數(shù)組名元素個數(shù)int a100; char b200; 1.用下標(biāo)表示各個元素,以0開始。a0,a1,a2.a99; 2.定義時必須確定元素個數(shù),且不能是變量。 3.數(shù)組初始化格式: int a5=2,3,8,4 /元素可少于元素個數(shù),不足自動補(bǔ)0,但是不能多于個數(shù) char b=a,b,c,d /自

35、動根據(jù)初始數(shù)據(jù)確定元素個數(shù) 4.for循環(huán)數(shù)組時 sizeof(數(shù)組名)是得到的是數(shù)組占的字節(jié)數(shù),不是元素個數(shù)。 5.傳數(shù)組時,把數(shù)組名傳過去即可,不需要加。 6.不要數(shù)組越界。 7.整型數(shù)組與字符串?dāng)?shù)組區(qū)別: 8.整型數(shù)組名字,表示整個數(shù)組,數(shù)值上是指第一個元素下標(biāo)地址 9.字符串?dāng)?shù)組名字 ,是指向整個字符串的第一個字符,也會帶出整個字符串。 char y28; for(int i=0;iyi;/那我到時候句打印一下y看結(jié)果 二維數(shù)組:表示幾行幾列。int a46 4行6列劃分開是:a00 a01 a02 a03 a04 a05 a10 a11 a12 a13 a14 a15 a20 a21

36、 a22 a23 a24 a25 a30 a31 a32 a33 a34 a35 二維數(shù)組初始化: int arr3=1,2,3/行的個數(shù)可以省去,列則不可。表示有三行 (從初始數(shù)據(jù)可看出)有三列分別是 1 2 0 0 0 0 3 0 0 結(jié)構(gòu)結(jié)構(gòu):把多種數(shù)據(jù)類型,組裝放在一起,用一種數(shù)據(jù)類型來表示。自己定義類型,結(jié)構(gòu)來實現(xiàn)。 1結(jié)構(gòu)類型定義:struct 結(jié)構(gòu)類型名成員類型 成員變量;. .; struct personchar name20;int age; / 一定不要忘記加分號2:結(jié)構(gòu)變量定義struct person char name20; int age;p1,p2; perso

37、n p ; person 是類型, p 是這種類型定義的變量。 3:結(jié)構(gòu)變量賦值 定義的時候直接賦值為初始化person a3=liqf,20,chenzq,30,hansy,40 如果不是在定義的時候初始化我們要各個成員變量賦值,訪問結(jié)構(gòu)變量用點(.)strcpy(,”zhangsan”);p.age=16;結(jié)構(gòu)變量給另外一個相同的結(jié)構(gòu)變量來初始化.person p3=p;1 p.成員 來訪問結(jié)構(gòu)變量中的成員。不是person.成員。 2. 結(jié)構(gòu)賦值時,兩個結(jié)構(gòu)變量之間可以賦值。但不能把具體的數(shù)據(jù)值賦值給結(jié)構(gòu)變量。 person p4=“l(fā)isi”,12; p4=p;p4=zha

38、ngsan,16;/錯誤字符串 字符串?dāng)?shù)組字符串string char a130 =hello,liqf; string name1=hello,liqf;char a230 =hello; string name2=hello;strlen (a1) 字符串長度 name1.size()strcpy(a2,abc) 把a(bǔ)bc復(fù)制給a2 name2=abcstrcat(a1,ccc) 字符串連接 name2+=abc strcmp(a1,a2) 比較大小 a1 a2 返回類型整型是正數(shù) name1name2a1 a2 返回是負(fù)數(shù) name1name2a1=a2 返回0 name1=name2指

39、針 指針:保存一些數(shù)據(jù)類型的地址。1、指針定義數(shù)據(jù)類型 * 指針變量名 如果未初始化,定義為空指針,也不成為野指針。分析(1)只要是地址就是4個字節(jié)。 (2)*地址 取變量 &變量 取地址 (3)地址+1 會找下一個這個類型大小的地址。 (4)保存地址的變量叫指針變量。 給指針變量定義的類型叫指針類型 int* p; 保存整型的指針類型 指針變量保存哪個變量的地址,就表示它(指針)指向哪個變量。 (5) 指針運算 p+; /加一個類型單位的位置。 *p=? 1.int* p; / 指向垃圾數(shù)據(jù) 和 int* p=NULL; /不指向任何變量。 2.int a=10; int b=20; int

40、 c=80; int* p=&c; /p指針 保存了c變量的地址 指針前加* 表示這個指針?biāo)赶虻淖兞?。?p= 80; *(p+1) 即是20p+; *p=20; 2、指針使用注意事項 1:int *p=NULL; Cout*pendl;/會出現(xiàn)段錯誤 2:int *p;/野指針 cout*p; return a;/返回之后數(shù)組已經(jīng)不存在,那我們還要這個地址做什么。好比我們已經(jīng)把房子給買了不存在了!你要鑰匙做什么 5:在哪個范圍內(nèi)new就在這個范圍內(nèi)delete,要不會出現(xiàn)內(nèi)存泄露動態(tài)內(nèi)存管理動態(tài)內(nèi)存管理堆空間heap自己創(chuàng)建的空間 自動創(chuàng)建的空間在永遠(yuǎn)就自己釋放,而自己創(chuàng)建的空間只有我們在

41、不用的時候自己去釋放,它自己是不釋放的。new創(chuàng)建的變量沒有變量的名字,只是帶回的是地址,所以我們用指針操作1:在運行的時候才給分配空間,編譯的時候不會分配空間2:new 類型:根據(jù)這個類型分配一個足夠sizeof(類型)的空間,在動態(tài)內(nèi)存空間中分配空間就是創(chuàng)建這個類型的變量 。3:我不用這個變量 delete 地址 釋放一塊空間。 4: 我們要用相應(yīng)類型的指針來保存這個地址:int *p=new int; delete p;這里有兩個空間 P空間,new空間釋放的是指針指向的變量,而不是釋放指針本身的空間,也就是p的空間沒有被釋放。new int(100);這里是把new創(chuàng)建的變量初始化為1

42、00例如: 5:new int個數(shù) 創(chuàng)建一個數(shù)組,帶回新建的數(shù)組的第有個元素的地址,相當(dāng)與數(shù)組名,保存這個地址指針 Int *p=new int個數(shù);個數(shù)可以是變量,因為他在運行的時候在分配空間,只要我們在運行的時候可以把這個變量計算出來就可以,當(dāng)然也可以是表達(dá)式。釋放一組變量的寫法:delete p; 例如: #includeusing namespace std;int main() / new int*5; /用new 創(chuàng)建指針數(shù)組 int n; coutn; int *p=new intn;/p代表的是數(shù)組的地址 ,可以當(dāng)數(shù)組名字 用 coutinput nnumber:; for(int i=0;ipi; for(int i=0;in;i+) coutpn-1-i ; coutendl; delete p; /只有new沒有delete會出現(xiàn)內(nèi)存泄露memory leak : 用來初始化的變量不可以用new創(chuàng)建變量的時候初始化,用初始化的有數(shù)組和結(jié)構(gòu)

溫馨提示

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

評論

0/150

提交評論