![編程入門基礎(chǔ)知識(shí)總結(jié)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/afa43bec-1659-4513-9d9b-0fb0b3659dfd/afa43bec-1659-4513-9d9b-0fb0b3659dfd1.gif)
![編程入門基礎(chǔ)知識(shí)總結(jié)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/afa43bec-1659-4513-9d9b-0fb0b3659dfd/afa43bec-1659-4513-9d9b-0fb0b3659dfd2.gif)
![編程入門基礎(chǔ)知識(shí)總結(jié)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/afa43bec-1659-4513-9d9b-0fb0b3659dfd/afa43bec-1659-4513-9d9b-0fb0b3659dfd3.gif)
![編程入門基礎(chǔ)知識(shí)總結(jié)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/afa43bec-1659-4513-9d9b-0fb0b3659dfd/afa43bec-1659-4513-9d9b-0fb0b3659dfd4.gif)
![編程入門基礎(chǔ)知識(shí)總結(jié)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/afa43bec-1659-4513-9d9b-0fb0b3659dfd/afa43bec-1659-4513-9d9b-0fb0b3659dfd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精品文檔編程入門基礎(chǔ)知識(shí)總結(jié)基本知識(shí)程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu),算法是對(duì)操作的描述,數(shù)據(jù)結(jié)構(gòu)是對(duì)數(shù)據(jù)的描述。偽代碼: pseudo code程序一般包括:( 1)預(yù)處理命令: #include 等(2)全局聲明部分(3)函數(shù):函數(shù)首部(聲明)、函數(shù)體(局部聲明+執(zhí)行部分)程序執(zhí)行過程源程序 -編譯成目標(biāo)程序 obj- 連接目標(biāo)程序成可執(zhí)行文件 類:數(shù)據(jù)成員 +成員函數(shù)命名空間實(shí)際上就是一個(gè)由程序設(shè)計(jì)者命名的內(nèi)存區(qū)域。 程序員可以根據(jù)需要指定一些有名字的空間 域,把一些全局實(shí)體分別放在各個(gè)命名空間中, 從而與其它全局實(shí)體分隔開, 解決名字沖突, 防止全局命名空間污染。C+庫的所有標(biāo)識(shí)符(標(biāo)準(zhǔn)頭
2、文件中函數(shù)、類、對(duì)象、類模版)都是在std命名空間定義的A的ASCII碼值65 a的971. 數(shù)據(jù)類型 ?基本類型:整型、浮點(diǎn)型、字符型、布爾型?構(gòu)造類型:枚舉、數(shù)組、結(jié)構(gòu)體類型(struct )、公用體( union )、類類型?指針類型?引用類型?空類型: nullint 4unsigned int 4short int 2unsigned short int 2long int 4 unsigned long int 4 char 1uchar 1float 4double 8long double 8無符號(hào):不用保存符號(hào)位,故比有符號(hào)多了一位 有符號(hào):數(shù)值用補(bǔ)碼存放(無論正負(fù) ),最高
3、位為符號(hào)位VC 中, long double 與 double 字節(jié)數(shù)相同,故 long double 是無用的GCC中,long double則有12個(gè)字節(jié)無負(fù)值的量可以定義為 unsigned int ,如年齡、學(xué)號(hào)等,以增大存儲(chǔ)范圍。short int , long int , unsigned int 這些類型后面的 int 可以省略整型表示:十進(jìn)制,后面加 L 或 l八進(jìn)制,前面加 0十六進(jìn)制,前面加 0x浮點(diǎn)數(shù)表示: 默認(rèn)為雙精度型 double 后面加 f 或 F 則為單精度 float 后面加 l 或 L 則為長精度型 long double指數(shù)形式a=31.4e1a=3140
4、e-1數(shù)符 數(shù)字部分 指數(shù)部分 a = 3.14e2a=0.314e4浮點(diǎn)數(shù), 不管是用小數(shù)形式還是指數(shù)形式表示, 在內(nèi)存中都是以指數(shù)形式表示的, 且數(shù)字部 分必須小于 1如 3.14159 在內(nèi)存中表示為 + .314159 3 ,數(shù)字部分為 .314159 ,是小于 1 的 字符型字符型在內(nèi)存中存儲(chǔ)的是 ASCII碼,也是整型,故而可以把字符型賦給整型 字符串后面,編譯系統(tǒng)會(huì)加個(gè) 0 作為結(jié)束符符號(hào)常量 用符號(hào)代表一個(gè)常量,如 #define PI 3.14159 在編譯時(shí),系統(tǒng)會(huì)把符號(hào)常量替換成具體的值2. 變量 變量:程序運(yùn)行期間,值可變的量 變量名:代表內(nèi)存中的一個(gè)存儲(chǔ)單元,在編譯連
5、接時(shí)由系統(tǒng)給每一個(gè)變量分配一個(gè)地址 標(biāo)識(shí)符:標(biāo)識(shí)實(shí)體名字的有效字符序列,字母、數(shù)字、下劃線 常變量:定義變量時(shí)加上 const ,運(yùn)行期間值不可變,也即只讀變量 區(qū)別 #define 定義的符號(hào)常量與 const 定義的常變量 符號(hào)常量只是用一個(gè)符號(hào)代表一個(gè)常量, 在編譯時(shí)把所有符號(hào)常量替換為指定的值, 它沒有 類型,在內(nèi)存中不存在以符號(hào)常量命名的存儲(chǔ)單元 常變量具有變量的特征, 具有類型, 在內(nèi)存中有以它命名的存儲(chǔ)單元, 與一般變量不同的是, 常變量代表的存儲(chǔ)單元值不可變。強(qiáng)定義的好處1. 保證變量名使用的正確,不正確會(huì)在編譯時(shí)報(bào)錯(cuò)2. 每個(gè)變量指定為一確定類型,在編譯時(shí)就能為其分配存儲(chǔ)單元
6、3. 編譯時(shí)即可檢查變量進(jìn)行的運(yùn)算是否合法。3. 運(yùn)算符 二進(jìn)制位運(yùn)算& 二進(jìn)制 按位與 | 二進(jìn)制按位或A按位異或 右移位+ - 自加自減運(yùn)算符+i 使用 i 之前, i 先自加 i+ 使用 i 之后, i 再自加 + - 結(jié)合方向?yàn)樽杂蚁蜃?例:!x+ 先取非,再 +(i+)+6先i+6,后i+,不管有無括號(hào),都是先運(yùn)算,再自加(+i)+6 先自加,再加 6-i+ : i左面是符號(hào)運(yùn)算符,右面是自加運(yùn)算符,設(shè)i等于3,運(yùn)算過程相當(dāng)于-(i+),即-i=-3-3+1=-2a = -i+: a結(jié)果為-3,先賦值,再自加;5-i+ =?答案 2?待測試i=1,j=2,則 a = i+j ? 答案
7、:3 因?yàn)橄喈?dāng)于 a=(i+)+j;i=1,j=2,則 a=i+(+j)? 答案:4賦值運(yùn)算符 =的優(yōu)先級(jí)小于 + - 運(yùn)算符示例:int arr = 6,7,8,9,10;sint *ptr = arr;*(ptr+) += 123; printf(%d,%d,*ptr,*(+ptr);解:*(ptr+) += 123; 相當(dāng)于 *ptr +=123;printf 函數(shù)從右向左壓棧,運(yùn)算順序: cout 也是自右向左壓棧。*ptr+; 故 arr0 = 129; ptr 指向 arr1+ptr; 輸出結(jié)果: 8 8逗號(hào)運(yùn)算符 又稱順序求值運(yùn)算符注意逗號(hào)運(yùn)算符優(yōu)先級(jí)最低。注:整個(gè)逗號(hào)表達(dá)式的a
8、 = 3*4,a*5 則 a=? 答案 12?值為 60(a=3*4=12, 12*5 =60) x=(a=3,6*3) 則 x=18 x=a=3,6*a 則 x=3 3.內(nèi)存存儲(chǔ)浮點(diǎn)數(shù)在內(nèi)存里和整數(shù)存儲(chǔ)方式不同float a =1.0f;cout(int)a=(int&a);(int&a) 相當(dāng)于把該浮點(diǎn)數(shù)地址開始的 sizeof(int) 個(gè)字節(jié)當(dāng)成 int 型數(shù)據(jù)輸出,其值并不為 1(int)a 顯示轉(zhuǎn)換等于 14. 類型轉(zhuǎn)換轉(zhuǎn)換本質(zhì):按存儲(chǔ)單元中的存儲(chǔ)形式直接傳送(1) 浮點(diǎn)型賦給整型,舍棄小數(shù)部分(2) double 型賦給 float ,防止溢出錯(cuò)誤(3) int, short,
9、long賦給char,原封不動(dòng)取低八位(4) signed賦給unsigned,符號(hào)位照搬。負(fù)數(shù)以補(bǔ)碼形式存放,-1賦給unsigned int,結(jié)果為 65536.整數(shù)不會(huì)變,除非兩個(gè)長度不同(int, long )發(fā)生截?cái)?. C+俞入輸出C+俞入輸出包含三個(gè)方面的內(nèi)容( 1 )對(duì)系統(tǒng)指定的標(biāo)準(zhǔn)設(shè)備的輸入輸出。即從鍵盤輸入、輸出到顯示器屏幕,稱標(biāo)準(zhǔn)輸入 輸出,簡稱標(biāo)準(zhǔn) I/O(2) 以外出磁盤文件為對(duì)象進(jìn)行輸入輸出,稱文件I/O(3) 對(duì)內(nèi)存中指定空間進(jìn)行輸入輸出,通常指定一個(gè)字符數(shù)組作為存儲(chǔ)空間,稱字符串輸 入輸出,簡稱串 I/O在C+中,輸入輸出流被定義為類。C+的I/O庫中的類稱為流
10、類,用流類定義的對(duì)象稱流對(duì)象。C+中輸入輸出是調(diào)用輸入輸出流庫中的流對(duì)象cin、cout實(shí)現(xiàn)的,即I/O不是C+本身定義的,而是編譯系統(tǒng)的 I/O 庫中定義的。I/O 控制符 #include setprecision(n) 設(shè)置精度為 n,十進(jìn)制輸出時(shí), n 代表有效數(shù)字位數(shù)包括整數(shù)和小數(shù);fixed (固定小數(shù)位數(shù))和 scientific (指數(shù))形式輸出時(shí),n指小數(shù)位數(shù)(不包括整數(shù)部分)double a = 123.4567890123456cout a; / 十進(jìn)制輸出,輸出 123.456 默認(rèn)精度為 6coutsetprecision(9)a; / 十進(jìn)制,輸出 123.4567
11、89 精度為 9coutsetprecision(6);/ 恢復(fù)默認(rèn)精度coutsetioflags(iOS:fixed)a; / 固定位數(shù), 123.456789 ,此時(shí)精度表示小數(shù)位數(shù),精度 為默認(rèn)的 66. getchar() 和 putchar()coutgetchar();/讀入的實(shí)際是 ASCII碼,故輸出為字符 ASCII碼,97,而非讀入的字符cout(c=getchar(); / 輸出為字符while(c=getchar()!=n) / 循環(huán)讀入字符的控制7. 函數(shù)與模版函數(shù)原型:不同具體形參的函數(shù)聲明如: float add(float,float)主要作用:根據(jù)函數(shù)原型,
12、在程序編譯階段對(duì)調(diào)用函數(shù)的合法性進(jìn)行全面檢查。參數(shù)順序至少有函數(shù)重載: 同一函數(shù)名定義的多個(gè)函數(shù), 這些函數(shù)的參數(shù)個(gè)數(shù),參數(shù)類型, 一項(xiàng)不同,一個(gè)函數(shù)不能既是重載函數(shù),又是帶默認(rèn)參數(shù)的函數(shù)。函數(shù)模版:適用于函數(shù)個(gè)數(shù)相同,函數(shù)體相同,而只有類型不同的情況cpp view plain copy01.#include 02.using namespace std;03.template / template 04.T max(T a, T b, T c)05.06.if(ba) a = b;07.if(ca) a = c;08. return a;09.10.int main()11. 12. in
13、t a=1,b=2,c=3;13. coutT(a,b,c);14. float d=1.1,e=2.2,f=3.3;15. cout T(d,e,f);16. 變量作用域:變量有效范圍,有四種:文件作用域 file scope 函數(shù)作用域function scope塊作用域 block scope 函數(shù)原型作用域 function prototype scope 遞歸函數(shù):函數(shù)體中,直接或間接調(diào)用函數(shù)本身的函數(shù)。 變量的存儲(chǔ)類別:外部、局部(相對(duì)于函數(shù)而言) 全局變量(也即外部變量) 靜態(tài)局部變量( static )自動(dòng)變量(不加 static 的局部變量)寄存器變量(register)存放
14、在CPU中,而非內(nèi)存中,這樣在使用時(shí)就省去了從內(nèi)存中載入 寄存器的過程。 但只是建議性的, 優(yōu)化編譯系統(tǒng)自動(dòng)識(shí)別使用頻繁的變量, 從而自動(dòng)將變量 放入寄存器中。extern 聲明的外部變量即提前引用申明, 表示該變量是將在下面定義的全局變量或在其它文件中定義(本文件中不用 extern ,引用該變量的外部文件用 extern 進(jìn)行聲明)static 聲明的靜態(tài)外部變量只能被本文件使用, 而不能被外部文件使用的全局變量, 這樣不同文件中的全局變量不會(huì)相 互干擾,為程序模塊化、通用化提供方便。注:全局變量也是靜態(tài)存儲(chǔ)的。內(nèi)部函數(shù)與外部函數(shù)內(nèi)部函數(shù): static 聲明,文件內(nèi)使用外部函數(shù):另一個(gè)文
15、件里 extern 聲明,表示是其它文件的函數(shù), extern 可以省略宏定義#define PI 3.14 定義符號(hào)常量#define Area(a,b) a*b/ 定義函數(shù)功能,下面當(dāng)作函數(shù)來用。#include iostream 區(qū)別 在系統(tǒng)目錄尋找,找不到報(bào)錯(cuò) 在當(dāng)前目錄尋找,找不到報(bào)錯(cuò)字符數(shù)組(1) char str = i am happy;數(shù)組長度為 11,而非 10,因?yàn)楹竺嬗幸粋€(gè) 0(2) char str = i,a,m,h,y數(shù)組長度為 5,系統(tǒng)不會(huì)自動(dòng)為其在后面加 0因此, (1),(2)是不同的輸出字符數(shù)組 :coutstr;string 類字符數(shù)組是 C中的處理方式
16、,C+中用string類,#inelude 字符串變量中不會(huì)存放 0 ,只存放字符串本身,故 string str =hello; 的長度為 5,要注意。字符串變量存儲(chǔ)的實(shí)際是字符串的指針, 4 個(gè)字節(jié),sizeof(string) = 4;string name=i,am,happy; sizeof(name) = 3*4 = 12;變量與指針:int *p = &i; /int 型指針變量,定義時(shí)的 * 只是表示指針類型p 是指針變量,其值是變量 i 的地址, *p 則是存儲(chǔ)單元, *&a 與 *p 同,都表示變量 a 指向數(shù)組的指針int a10 = ;int *p;p = &a0;/
17、與下面等價(jià),都指向數(shù)組第一個(gè)元素,因?yàn)閿?shù)組名本身就是表示數(shù)組的地址p = a;*p+ 相當(dāng)于 *(p+) ,先得到 *p 的值, p 再+移到下一個(gè)元素(*p)+ 則是使 *p 的值 +1二維數(shù)組的指針表示: *(*(p+i)+j) 表示 ai,j*int (*p)n p 為指向含 n 個(gè)元素的數(shù)組的指針int *pn 定義指針數(shù)組 P函數(shù)指針 指向函數(shù)的指針,主要用作形參int max(int,int);int (*p)(int,int);p = max; 賦值(地址)p(1,2) / 調(diào)用引用int a = 10;int &b = a; b 是對(duì) a 的引用引用傳遞,引用型變量作為函數(shù)形參
18、cpp view plain copy01./ 值會(huì)改變02.main03. int i=5,j=6;04. swap(i,j)05.06.void swap(int &a, int &b) / 這里的 & 不是“ a 的地址”,而是指“ a 是一個(gè)引用型變量”, &是個(gè)聲明符07.08. int temp;09. temp = a;10. a= b;11. b=temp;12. 傳遞變量地址:形參是指針變量,實(shí)參是變量地址,這種虛實(shí)結(jié)合的方法仍然是“值傳遞” 方式,只是實(shí)參的值是變量地址而已。cpp view plain copy01./ 值會(huì)改變02.main()03.04. int i=
19、5,j=6;05. swap(&i,&j)06.07.void swap(int *p1, int *p2) / 這里的 * 號(hào)也只表示是指針類型 08.09.int temp;10. temp = *p1;11. *p1 = *p2;12. *p2 = temp;13. 結(jié)構(gòu)體變量 struct作函數(shù)參數(shù)時(shí)有三種形式(1)用結(jié)構(gòu)體變量名作形參這時(shí)形參要開辟內(nèi)存單元,實(shí)參中全部內(nèi)容通過值傳遞方式一一傳遞給形參,時(shí)空開銷大, 效率低(2)用指向結(jié)構(gòu)體變量的指針作形參,只有四個(gè)字節(jié)void printed ( student *p)coutnum;(3) 用結(jié)構(gòu)體變量的引用變量作形參Student
20、 stu;print(stu);void print(Student &stu)coutstu.num;new delete 動(dòng)態(tài)內(nèi)存分配new 類型(初值 ),返回地址,分配失敗返回 NULLfloat *f = new float(3.14);int *i = new int(6);int *k = new int54; / 數(shù)組delete 變量 delete f; delete i;數(shù)組 delete k;Enum 枚舉類型聲明枚舉類型 enum weekdaysun,mon,tue,wed,thu,fri,sat;定義枚舉變量 weekday workday,week_end;變量賦
21、值: workday = mon;或 workday = weekday(2);枚舉常量對(duì)應(yīng)值從 0 開始, 0,1, 2,3.typedef 聲明新類型typedef int INTEGER,相當(dāng)于為int起了個(gè)別名,下面程序中就可以直接用INTEGER乍int用了主要為了方便系統(tǒng)移植,如long int在VC中4個(gè)字節(jié),在GCC中占8個(gè)字節(jié),直接用int的話可能會(huì)溢出,用INTEGER就不用擔(dān)心了,只要把 ypedef int INTEGER聲明語句一改就行運(yùn)算符重載 方法是定義一個(gè)重載運(yùn)算符的函數(shù), 在需要執(zhí)行被重載的運(yùn)算符時(shí), 系統(tǒng)就自動(dòng)調(diào)用該函數(shù), 以實(shí)現(xiàn)響應(yīng)運(yùn)算。即運(yùn)算符重載是通過
22、定義函數(shù)實(shí)現(xiàn)的,運(yùn)算符重載實(shí)際上是函數(shù)重載。格式:函數(shù)類型 operator 運(yùn)算符名稱 (形參表列 )對(duì)運(yùn)算符的重載處理 例如:將 + 用于 Complex 類(復(fù)數(shù))的加法運(yùn)算,函數(shù)原型如下:Complex operator + (Complex& c1, Complex& c2);注:operator是關(guān)鍵字,operator +就是函數(shù)名,可以描述為: 函數(shù)operator +重載了運(yùn)算符+整數(shù)加可以想象為調(diào)用如下函數(shù)int operator + (int a,int b) return a+b; cpp view plain copy01.#include 02.using namespace std;03.class Complex04.05. public:06. Complex()real=0;imag=0;07.Complex(double r, double r)real=r;imag=i;08. Complex operator + (Complex &c2); / 聲明重載運(yùn)算符的函數(shù)09. void display();10. private:11. double rea;12. double imag;13. ;14. Complex Complex:operator + (Complex &c2)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金屬表面油漆行業(yè)深度研究分析報(bào)告
- 2025年乙酰乙酰芳胺類行業(yè)深度研究分析報(bào)告
- 農(nóng)行理財(cái)合同范例
- 農(nóng)村建筑材料租賃合同范例
- 農(nóng)村宗祠建筑合同范例
- 公司土地入股合同范本
- 2025年度酒店客房用品租賃與售后服務(wù)合同范本
- 農(nóng)村地基賣合同范例
- 公益贈(zèng)與合同范本
- 創(chuàng)建三甲醫(yī)院宣傳合同范本
- 島津氣相色譜培訓(xùn)
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 睡眠專業(yè)知識(shí)培訓(xùn)課件
- 臨床思維能力培養(yǎng)
- 人教版高中物理必修第三冊(cè)第十章靜電場中的能量10-1電勢能和電勢練習(xí)含答案
- 《工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)》(2002年修訂本)
- 中國宗教文化 中國古代宗教文化的特點(diǎn)及現(xiàn)代意義
- 2024年四川省巴中市級(jí)事業(yè)單位選聘15人歷年高頻難、易錯(cuò)點(diǎn)練習(xí)500題附帶答案詳解
- 演出經(jīng)紀(jì)人培訓(xùn)
- 蓋房四鄰簽字協(xié)議書范文
- 2024年新人教版七年級(jí)上冊(cè)數(shù)學(xué)教學(xué)課件 第六章 幾何圖形初步 數(shù)學(xué)活動(dòng)
評(píng)論
0/150
提交評(píng)論