




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、編寫者:魏娟審稿者:唐璽冬,邵學(xué)蛟編寫時間:2008年2月20日星期三專 題 技 術(shù) 手 冊達(dá)內(nèi)金海洋外企軟件工程師培訓(xùn)前 言編寫目的本書是為參加達(dá)內(nèi)技術(shù)培訓(xùn)的對象而編寫的一套相關(guān)的技術(shù)手冊。為了使得達(dá)內(nèi)學(xué)員更能有效地掌握達(dá)內(nèi)技術(shù)體系,更有條理地進(jìn)行技術(shù)學(xué)習(xí),提高學(xué)習(xí)效率和提升學(xué)習(xí)效果,能熟練地的掌握軟件開發(fā)技術(shù),制作了本手冊。內(nèi)容組成本手冊是按照達(dá)內(nèi)技術(shù)課程分科目,分技術(shù)專題來編寫的技術(shù)知識和要點(diǎn)。內(nèi)容主要包括unix,c+,java,ooad,xml,jdbc,hibernate,java Web開發(fā)技術(shù),ejb,spring等等。讀者范圍本手冊適合初學(xué)軟件開發(fā)的讀者和參加達(dá)內(nèi)外企軟件工程
2、師培訓(xùn)的對象。手冊使用本手冊中使用了一些符號來表示特殊內(nèi)容,為了方便讀者查閱,將符號說明如下:注意案例參考Unix常用命令系統(tǒng)命令登陸與登出telnet 主機(jī)login: 用戶名passwd:密碼退出系統(tǒng)exit:不同shell相互交換退出ctrl+D:結(jié)束終端輸入ctrl+c:工作一半輸出還要繼續(xù)工作修改密碼passwd(6-8個字符)old passwd: 原密碼new passwd:新密碼confirm passwd:確認(rèn)密碼目錄命令改變當(dāng)前工作目錄cd:改變當(dāng)前工作目錄。后面可以是絕對路徑也可以是相對路徑cd :回到用戶主目錄cd 目錄名:改變當(dāng)前目錄到指定的目錄cd . :改變當(dāng)前目
3、錄到上一極目錄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í)行文件,軟鏈接文件,/:目錄,無:普通文件)權(quán)限控制文件:r打開文件來查看內(nèi)容,如cat,more命令就需要讀權(quán)限 w可以更改文件內(nèi)容,如cp,vi命令要求有寫權(quán)限 x可以
4、執(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)限:644;目錄常用的權(quán)限是:755創(chuàng)建目錄創(chuàng)建目錄:mkdirmkdir dir1 dir2 dir3 在當(dāng)前目錄中創(chuàng)建3個目錄 他們?yōu)橥壞夸沵kdir dir9/d
5、ir4 在當(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 objectfile 拷貝源文件為目標(biāo)文件 目標(biāo)文件不存在則新建目標(biāo)文件。把原文件的內(nèi)容放到新建文件中 目標(biāo)文件存在則用原文件的內(nèi)容覆蓋目標(biāo)文件的內(nèi)容 cp i sourcef
6、ile 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不存在 則為 wfx1 wfx2移動文件/目錄移動文件/目錄:mv 源文件,源目錄都不存在mv sourcefile objectfile 源文件內(nèi)容覆蓋目標(biāo)文件,目標(biāo)文
7、件不存在,則源文件改名為目標(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 dir1:刪除非空目錄,會刪除目錄中所有的內(nèi)容。這里會詢問我們要不要刪除rm rf dir3:刪除非空目錄,會刪除目錄中所有的內(nèi)容,不詢問我們到底要不要刪除。創(chuàng)建鏈接文
8、件創(chuàng)建鏈接文件:ln ln s 被指向的源文件 建立的鏈接文件 :建立軟鏈接 首先我們修改任何一個文件內(nèi)容,另一個文件的內(nèi)容也相應(yīng)修改 刪除源文件以后。鏈接文件就不可以在操作。我們把安裝文件給刪除了。快捷方式就沒有用了 刪除鏈接文件不會影響到源文件。源文件還可以操作 ln 被指向的源文件 建立的鏈接文件 :建立硬鏈接 首先我們要是修改任何一個文件中的內(nèi)容,另一個文件也會相應(yīng)的修改。刪除源文件不會影響鏈接文件,刪除鏈接文件不會影響源文件軟鏈接:abc(l:表示是軟鏈接文件)abc.txt(普通文件),abc文件中有abc.txt的inode號,abc指向abc.txt,就向windows中的快捷
9、方式一樣,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)輸出,如文件。 cal 2 2002 > file1 <:輸入重定向,不從我們鍵盤的標(biāo)準(zhǔn)輸入,cat <file1 >file2>&
10、gt;:以追加方式將命令的執(zhí)行結(jié)果輸出到非標(biāo)準(zhǔn)設(shè)備 cal 7 2002>>calfile|:將前一個命令的的執(zhí)行結(jié)果作為后一個命令的輸入 cat /etc/passwd | more查找文件查找文件查找:findfind path name filename :按文件名查找find path user0 username :按文件的擁有者查找 user0為root用戶 user1為soft用戶find path atime +10/-10 : 按文件的訪問時間來查找(+表示超過 表示不足)find path mtime +/-days : 按文件的訪問時間來查找find path
11、 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í)行命令)過濾文件和目錄grep 在命令結(jié)果或文件中進(jìn)行過濾grep root
12、/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)建進(jìn)程ps :列出當(dāng)前終端啟動的進(jìn)程ps ef :列出當(dāng)前系統(tǒng)中運(yùn)行的進(jìn)程,詳
13、細(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)程;ctrl+z 把這個進(jìn)程給掛起kill%n : 終止進(jìn)程網(wǎng)絡(luò)命令ftp:
14、文件傳輸lirui 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 filenamecat file1 file2 > file3cat /dev/null > /b.txt :
15、 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:上移一行 $:到行尾,:到行首,G:到最后一行,nG,1G文本操作:x:刪除光標(biāo)所在位置的一個字符 dw
16、刪除從標(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)境變量bsh:系統(tǒng)初始化文件 /etc/.profile 用戶初始化文件 $HOME/.pr
17、ofilecsh:系統(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 命令名:顯示命令所在的各個路徑JAVA_HOME:java(jdk)的安裝目錄CLASSPATH:J
18、ava 的類路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.運(yùn)行shell 腳本./名字.sh 運(yùn)行系統(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)度計劃 crontab -r 刪除當(dāng)前系統(tǒng)中的調(diào)度計劃一般計劃程序都是用shell腳本編寫的,編
19、寫內(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而不是WTO里的值歷史記錄命令:Historyset history=30 :設(shè)置系
20、統(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)建立了的替代的命令列表unalias copy 取消建立的copy替代的命令core c+c+基礎(chǔ)語法字符集字符
21、集就是說可以出現(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、變量類型 變量名字;定義或是聲明一個變量 變量名字=值;給變量賦值 int a; a=5;
22、變量類型 變量名字=值; 初始化 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(類型) 或 sizeof(變量名
23、字) (1)整型 無符號:unsigned 最高為不是符號位。因?yàn)檫@樣它放的數(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)實(shí)型 float double long double (4)邏輯型 bool 值為true 或 false (5)空類型 void 它是不確定類型,不能直接用來定
24、義變量。因?yàn)樽兞慷x的時候必須有確定的類型,才可以適當(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運(yùn)算符 0為假 1為真 運(yùn)算符只是運(yùn)算而不會修改變量原來的值 強(qiáng)轉(zhuǎn)是暫時的。變量聲明類型就是固定不變 運(yùn)算符優(yōu)先級 1: ()為最高優(yōu)先級。當(dāng)我
25、們想按自己的想法去做!對優(yōu)先級不是很清楚!就可以加() 下標(biāo)運(yùn)算符 數(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)給變量分配
26、空間 delete 釋放動態(tài)分配空間 4: * 相乘 / 相除 % 相余 5: +相加 -相減 6: 非負(fù)數(shù)右移位缺的補(bǔ)0 。負(fù)數(shù)右移位缺的補(bǔ)1 << 左移位 左移1位 乘2 當(dāng)然我們左移幾位,就乘幾個2 >> 右移位 右移1位 除2 當(dāng)然我們右移幾位,就除幾個2 7: <小于 <=小于或者等于 >大于 >=大于或者等于 8: = 等于 != 不等于 9: & 按位相與 只要有0則為0 10: 按位異或 只要相同則為0不同為1 11: | 按位或 只要有1則為1 12: && 邏輯與 短路運(yùn)算符 意思就是說只要最左邊遇到了
27、假那么后面的就不再判斷整個為假 一般會和前加加 ,后加加 ,前減減 后減減連用 13: | 邏輯或 短路運(yùn)算符 意思就是說只要最左邊遇到了真那么后面的就不再判斷整個為真 一般會和前加加 ,后加加 ,前減減 后減減連用 14: ?:條件運(yùn)算符 三目運(yùn)算符:兩邊的數(shù)據(jù)為相同類型 (表達(dá)式)?(數(shù)據(jù)1):(數(shù)據(jù)2) 表達(dá)式為真則取數(shù)據(jù)1,表達(dá)式為假則取數(shù)據(jù)215: = 賦值 *=自乘以 /=自除以 %=自求余 +=自增加 -=自減少 <<=自左移位 >>=自右移位 &=自按位相與 |=自按位相或 =自按位異或16: 逗號表達(dá)式 總是依次計算逗號分隔的各個部分的結(jié)果.最
28、后一部分就是整個表達(dá)的結(jié)果 例如(a=1,b=a,c=a+b,d=c+5)=8 因?yàn)槎禾柋磉_(dá)式的結(jié)果為d 因?yàn)檫@樣寫是正確的 (a=0,b=a+5,b+2)=9這樣寫是錯誤的,因?yàn)槎禾柋磉_(dá)式的結(jié)果為兩個數(shù)據(jù)和的臨時值 不能做為左值.那就順便說一下左值和右值 左值:就是放在等號左邊。我們可以再給它賦值 賦值表達(dá)式就是左值。+a也是左值 (a=5)=6; (+a)=5; 右值:就是放在等號右邊。小的規(guī)則: 前三名 括號 成員 單目 后三名 逗號表達(dá)式 賦值 三目注釋 1:單行注釋 / 2:多行注釋/* */ 多行注釋里可以有單行注釋、 但是不可以再有多行注釋編譯c+ 1: g+ -c hello.
29、cc 會生成.o文件 hello.o 編譯.cc文件 g+ -o hello hello.o 我們給可執(zhí)行文件起了別名hello不在用a.out 連接 hello 執(zhí)行可執(zhí)行文件 2: g+ -o hello hello.cc 3: g+ hello.cc a.out頭文件 #include<> 系統(tǒng)文件 #include "" 自己寫的文件 我們自己寫的文件要遵守。c+中的語法?;据斎耄敵稣Z句 cin>>需要輸入數(shù)據(jù)的變量。 在cin輸入的時候,多個數(shù)據(jù)用(空格, 制表符Tab,回車)分隔 習(xí)慣上我們要在輸入之前都會先輸出提示信息提示用戶輸入數(shù)
30、據(jù) int a; cout<<"please insert into int " cin>>a; cout<<a;特殊符號r:回車符 就是回到本行開頭做輸出。cout<<”abcdref”<<endl; 結(jié)果就是efcdn:換行符 cout<<”abns”<<endl; 結(jié)果: ab st:制表符 cout<<”atb”<<endl;結(jié)果就是 a b 就好象我們按Tab鍵a:小喇叭聲響:為轉(zhuǎn)義字符 cout<<”ascd”<<endl; 結(jié)果就
31、是as/cd大寫字母和小寫字母的ASCII都是相差32常用ASCII碼范圍: 十進(jìn)制 十六進(jìn)制a-z 97-122 0x61-0x7a A-Z 65-90 0x41-0x5a 0-9 48-57 0x30-0x39用二進(jìn)制表示負(fù)數(shù): 正數(shù)的二進(jìn)制寫出來=>反轉(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
32、語句塊例如: if(score >=0) cout<<"input ok!"<<endl;(2) if(條件)語句塊else語句塊例如: if(choice='y') cout<<"start another game ."<<endl; else cout<<"3Q,bye!"<<endl; (3) 級聯(lián)使用if(條件)語句塊else if(條件)語句塊else if(條件)語句塊else語句塊例如: if(score=100) / 這里判
33、斷相等用 = 不是=cout<<"A"<<endl;else if(score>=90) cout<<"B"<<endl;else if(score >=80)cout<<"C"<<endl;elsecout<<"D"<<endl;for循環(huán)語句for 語句使用:一般我們都是在知道次數(shù)的時候使用格式:for(int i=0;i<5;i+) / int i=0 是初始化 i<5 是條件 i+ 是調(diào)整
34、語句 語句塊(循環(huán)體) / 條件為真,執(zhí)行代碼 執(zhí)行過程: 先是for第一部分-初始化,再判斷條件是否為真,若為真,進(jìn)入循環(huán)體,執(zhí)行代碼,之后再回到for第三部分-改變i的值,再去條件判斷,只要條件為真,一直如此循環(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;i<n;i+)cout<<" *"<<endl;while循環(huán)控制語句循環(huán)控制語句 :一般循環(huán)條件不確定 我們在
35、、可以寫條件為true while(條件) 語句塊(循環(huán)體) / 條件為真,執(zhí)行代碼 執(zhí)行過程:先是判斷條件是否為真,若為真,進(jìn)入循環(huán)體,執(zhí)行代碼,如果第一次條件判斷為假,直接不進(jìn)循環(huán)體,跳出循環(huán)體,執(zhí)行循環(huán)體以外的代碼 例如:int n=8; while(n>6) n-; cout<<"*" do語句塊(循環(huán)體) / 不管條件為真還是假,都先執(zhí)行代碼 while(條件); /條件來決定是否再循環(huán) 這個地方不要少了分號switch多路選擇語句switch 分支語句 switch(表達(dá)式) case n1: .break;case n2:.break; /表
36、示退出分支。case n3:.break;default: / 如果沒有case匹配入口,默認(rèn)入口 它是可寫可不寫。.break;執(zhí)行過程:根據(jù)表達(dá)式的結(jié)果,來跟每個case 后的值相匹配,匹配上就執(zhí)行這個分支的代碼,執(zhí)行完,由break退出,如果沒有匹配的,執(zhí)行默認(rèn)的匹配入口。例如:switch(score/10)case 1:cout<<"A"<<endl;break;case 2: cout<<"B"<<endl;break;case 3:cout<<"C"<&l
37、t;endl;break;default:cout<<"D"<<endl;break;break/continue/return語句用在這些循環(huán)語句中的其他語句解說 break:跳出本層循環(huán),執(zhí)行后面的語句 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)
38、從0開始,依此遞增。eg: RED=0,GREEN=1,BLUE=3 (2)變量的值只能是大括號里的值。 (3)定義類型是語句后面要加分號。 (4)一般,定義類型都要在main函數(shù)外面。 (5)我們可以指定其中若干個變量的值,然后就從指定的值開始遞增 enum color RED,GREEN,BLUE,WHITE;int main()color c;cout<<"RED="<<RED<<endl;if(c=GREEN)cout<<"Green one!"<<endl;return 0;輸出 RE
39、D=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' /自動根據(jù)初始數(shù)據(jù)確定元素個數(shù) 4.for循環(huán)數(shù)組時 sizeof(數(shù)組名)是得到的是數(shù)組占的字節(jié)數(shù),不是元素個數(shù)。 5.傳數(shù)組時,把數(shù)組名傳過去即可,不需要
40、加。 6.不要數(shù)組越界。 7.整型數(shù)組與字符串?dāng)?shù)組區(qū)別: 8.整型數(shù)組名字,表示整個數(shù)組,數(shù)值上是指第一個元素下標(biāo)地址 9.字符串?dāng)?shù)組名字 ,是指向整個字符串的第一個字符,也會帶出整個字符串。 char y28; for(int i=0;i<28;i+) cin>>yi;/那我到時候句打印一下y看結(jié)果 二維數(shù)組:表示幾行幾列。int a46 4行6列劃分開是:a00 a01 a02 a03 a04 a05 a10 a11 a12 a13 a14 a15 a20 a21 a22 a23 a24 a25 a30 a31 a32 a33 a34 a35 二維數(shù)組初始化: int a
41、rr3=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)來實(shí)現(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; person p ; person 是類型, p 是這種類型定義的變量。 3:結(jié)構(gòu)變量賦值 定義的時候直接賦值為初始化p
42、erson a3="liqf",20,"chenzq",30,"hansy",40 如果不是在定義的時候初始化我們要各個成員變量賦值,訪問結(jié)構(gòu)變量用點(diǎn)(.)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="zhangsan",1
43、6;/錯誤字符串 字符串?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") 把"abc"復(fù)制給a2 name2="abc"strcat(a1,"ccc") 字符串連接 name2+="ab
44、c" strcmp(a1,a2) 比較大小 a1 >a2 返回類型整型是正數(shù) name1>name2a1< a2 返回是負(fù)數(shù) name1<name2a1=a2 返回0 name1=name2指針 指針:保存一些數(shù)據(jù)類型的地址。1、指針定義數(shù)據(jù)類型 * 指針變量名 如果未初始化,定義為空指針,也不成為野指針。分析(1)只要是地址就是4個字節(jié)。 (2)*地址 取變量 &變量 取地址 (3)地址+1 會找下一個這個類型大小的地址。 (4)保存地址的變量叫指針變量。 給指針變量定義的類型叫指針類型 int* p; 保存整型的指針類型 指針變量保存哪個變量的地址
45、,就表示它(指針)指向哪個變量。 (5) 指針運(yùn)算 p+; /加一個類型單位的位置。 *p=? 1.int* p; / 指向垃圾數(shù)據(jù) 和 int* p=NULL; /不指向任何變量。 2.int a=10; int b=20; int c=80; int* p=&c; /p指針 保存了c變量的地址 指針前加* 表示這個指針?biāo)赶虻淖兞?。?p= 80; *(p+1) 即是20p+; *p=20; 2、指針使用注意事項(xiàng) 1:int *p=NULL; Cout<<*p<<endl;/會出現(xiàn)段錯誤 2:int *p;/野指針 cout<<*p<<
46、;endl;有時候沒有出錯,我們要避免野指針,不要定義沒有等號的指針。在定義的時候不允許沒有等號的指針出現(xiàn)3:不要用已經(jīng)經(jīng)釋放了了空間 int *p=new int(100); p放的是100變量的地址eeff 100 變量100的地址eeffdelete p;/釋放p指向的空間。就是把我們new的變量給釋放,為了NULL這個變量的空間已經(jīng)釋放*p:則是取已經(jīng)釋放了空間的值,會出錯,有時候會得到我們想象中的值,有時候則不對因此我們要p=NULL;4:返回局部變量的地址 int * input() int a5; cin>> return a;/返回之后數(shù)組已經(jīng)不存在,那我們還要這個
47、地址做什么。好比我們已經(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)建的空間只有我們在不用的時候自己去釋放,它自己是不釋放的。new創(chuàng)建的變量沒有變量的名字,只是帶回的是地址,所以我們用指針操作1:在運(yùn)行的時候才給分配空間,編譯的時候不會分配空間2:new 類型:根據(jù)這個類型分配一個足夠sizeof(類型)的空間,在動態(tài)內(nèi)存空間中分配空間就是創(chuàng)建這個類型的變量 。3:我不用這個變量 delete 地址 釋放一塊空間。 4: 我們
48、要用相應(yīng)類型的指針來保存這個地址:int *p=new int; delete p;這里有兩個空間 P空間,new空間釋放的是指針指向的變量,而不是釋放指針本身的空間,也就是p的空間沒有被釋放。new int(100);這里是把new創(chuàng)建的變量初始化為100例如: 5:new int個數(shù) 創(chuàng)建一個數(shù)組,帶回新建的數(shù)組的第有個元素的地址,相當(dāng)與數(shù)組名,保存這個地址指針 Int *p=new int個數(shù);個數(shù)可以是變量,因?yàn)樗谶\(yùn)行的時候在分配空間,只要我們在運(yùn)行的時候可以把這個變量計算出來就可以,當(dāng)然也可以是表達(dá)式。釋放一組變量的寫法:delete p; 例如: #include<iost
49、ream>using namespace std;int main() / new int*5; /用new 創(chuàng)建指針數(shù)組 int n; cout<<"input n:" cin>>n; int *p=new intn;/p代表的是數(shù)組的地址 ,可以當(dāng)數(shù)組名字 用 cout<<"input "<<n<<"number:" for(int i=0;i<n;i+) cin>>pi; for(int i=0;i<n;i+) cout<<pn-1-i<<' ' cout<<endl; delete p; /只有new沒有delete會出現(xiàn)內(nèi)存泄露memory leak : 用來初始化的變量不可以用new創(chuàng)建變量的時候初始化,用初始化的有數(shù)組和結(jié)構(gòu) 引用引用reference:就是給變量起別名swap(ai,aj)這個函數(shù)可以直接寫,而不是地址。因?yàn)檫@個函數(shù)用了引用類型別名:typedef 類型 別名;int a=100;int& b=a;起個整型別名,必須用一個相應(yīng)類型的變量來初始化,引用方
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬的解剖生理課件
- 2025屆新疆維吾爾巴音郭楞蒙古自治州和靜縣三年級數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 股權(quán)管理學(xué)課件
- 工程項(xiàng)目的多維度評估試題及答案
- 水利水電工程前沿動態(tài)試題及答案
- 2025年市政工程績效評價試題及答案
- 2025年經(jīng)濟(jì)師行業(yè)前景展望試題及答案
- 工程項(xiàng)目管理法規(guī)試題及答案
- 通信行業(yè)客戶服務(wù)手冊
- 2025年市政工程公共事務(wù)試題及答案
- 核電工程項(xiàng)目建設(shè)過程概述課件
- 陜旅版六年級下冊英語知識點(diǎn)總結(jié)V
- 公共建筑設(shè)計原理五課件
- 《井岡翠竹》完整版課件解析
- 數(shù)學(xué)建模歷年競賽試題
- 三年級數(shù)學(xué)下冊《面積》練習(xí)試卷及答案
- 膝關(guān)節(jié)鏡的配合1課件
- 變電站施工進(jìn)度計劃節(jié)點(diǎn)橫道圖
- 教師專業(yè)發(fā)展第3章-教師專業(yè)發(fā)展趨向課件
- 切爾諾貝利核事故永遠(yuǎn)不能忘卻的事故(課堂PPT)
- 安裝調(diào)試培訓(xùn)及驗(yàn)收方案
評論
0/150
提交評論