C/C++編程筆記:C++入門知識(shí)丨認(rèn)識(shí)C++面向過程編程的特點(diǎn)
一. 本篇要學(xué)習(xí)的內(nèi)容和知識(shí)結(jié)構(gòu)概覽

二. 知識(shí)點(diǎn)逐條分析
1. 使用函數(shù)重載
C++允許為同一個(gè)函數(shù)定義幾個(gè)版本, 從而使一個(gè)函數(shù)名具有多種功能, 這稱之為函數(shù)重載.
像這樣: 雖然函數(shù)名一樣, 但是參數(shù)列表不一樣, 一個(gè)求兩個(gè)整型參數(shù)的最大值, 一個(gè)求三個(gè)整型參數(shù)的最大值.

2. 新的基本數(shù)據(jù)類型及其注意事項(xiàng)
a. void是無類型標(biāo)識(shí)符, 只能聲明函數(shù)的返回值類型, 不能聲明變量
b. C++當(dāng)中有bool類型, 而C中沒有
c. C++的常量分為符號(hào)常量, 浮點(diǎn)常量, 整數(shù)常量
? ?像這樣:

我們可以通過屏幕輸出來查看011, 11, 0x11各代表十進(jìn)制的多少

3. 動(dòng)態(tài)分配內(nèi)存
申請(qǐng)內(nèi)存空間: new 類型名[size], 申請(qǐng)可以存size個(gè)該數(shù)據(jù)類型對(duì)象的存儲(chǔ)空間
釋放內(nèi)存空間: delete 指針名;
像這樣:

4. 引用
為現(xiàn)有對(duì)象起個(gè)別名, 別名代表的內(nèi)存空間與引用對(duì)象的內(nèi)存空間是一樣的
引用的聲明方式: 數(shù)據(jù)類型(類型名) & 別名 = 對(duì)象名;
&的位置無關(guān)緊要
像這樣:

我們?cè)龠M(jìn)一步的使用它

可以看到, 上下兩組輸出結(jié)果是一樣的, 也就是說引用b, 和變量a都是代表的同一塊內(nèi)存地址
所以更改b的值, a的值也會(huì)變

注意:?引用, 就是給一塊已經(jīng)存在的內(nèi)存添加一個(gè)新的標(biāo)識(shí)符, 所以使用引用沒有分配新的內(nèi)存空間, 所以可以通過引用來修改原來的對(duì)象, 但是不能有空引用, 它必須和一聲正確的存儲(chǔ)區(qū)域關(guān)聯(lián)。
像這樣: 是錯(cuò)誤的
int & b;// 編譯器提示信息: Declaration of reference variable 'b' requires an initializer, 變量b需要一個(gè)初始化器
引用的作用
a. 引用用于函數(shù)的參數(shù)表, 不產(chǎn)生臨時(shí)對(duì)象, 提高安全性和執(zhí)行效率

b. 引用用于函數(shù)返回值 用到的時(shí)候很少, 因?yàn)椴话踩? 你可能問訪問到一個(gè)已經(jīng)被釋放的對(duì)象
引用可以這么使用

但是不能這么使用

指針和引用的區(qū)別和聯(lián)系
聯(lián)系: 它們都會(huì)對(duì)內(nèi)存地址上存在的變量進(jìn)行修改, 但引用不占用新的地址, 節(jié)省開銷
區(qū)別: 指針是低級(jí)的直接操作內(nèi)存地址的機(jī)制, 可由整型數(shù)強(qiáng)制類型轉(zhuǎn)換得到, 功能強(qiáng)大, 但是容易出錯(cuò), 引用是較高級(jí)的封裝了指針的特性, 不直接操作內(nèi)存地址, 不可強(qiáng)制類型轉(zhuǎn)換得到, 安全性高.
5. 對(duì)指針使用const限定符
a. 指向常量的指針
int a = 5;
int b = 8;
const int * p = &a; // 指向常量的指針, 也就是"*p="不成立, 也就是不能通過指針p修改指向的內(nèi)存地址中的值, 但是p的值可以更改
*p = 10; // 錯(cuò)誤
p = &b; // 正確
b. 常量指針
int a = 5;
int b = 8;
int * const p = &a; // 常量指針, 也就是"p="不成立, 也就是p的值不能更改, 但是是它所指向的內(nèi)存地址中的值可以修改
*p = 10; // 正確
p = &b; // 錯(cuò)誤
c. 指向常量的常量指針
int a = 5;
int b = 8;
const int * const p = &a; // 指向常量的的常量指針, 既不可以通過p修改它所指向的內(nèi)存地址中的值, 也不可更改p的值
*p = 10; // 錯(cuò)誤
p = &b; // 錯(cuò)誤
6. 泛型算法應(yīng)用于普通數(shù)組


7. 程序的編輯, 編譯, 連接, 運(yùn)行的基本概念
使用編輯器編輯一個(gè)C++源程序, 也就是源文件,? 擴(kuò)展名為.cpp, 像這樣: Hello.cpp;
使用C++編譯器對(duì)這個(gè)源程序進(jìn)行編譯, 產(chǎn)生目標(biāo)文件, 擴(kuò)展名為.obj, 像這樣: Hello.obj;
使用連接程序, 將目標(biāo)文件與系統(tǒng)庫連接, 產(chǎn)生可執(zhí)行文件, 擴(kuò)展名為.exe, 你這樣: Hello.exe
任何時(shí)候我們都不要忘記語言只是我們解決問題的工具, 思想才是我們解決問題的本質(zhì), 技術(shù)不深, 我們可以去查, 去練習(xí), 而思想只有慢慢的去陪養(yǎng), 去思考, 去總結(jié)!

另外,UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~