C 學習筆記(一)C 的基礎知識

2021-09-29 17:11:35 字數 1737 閱讀 1951

2019.11.17記,從今天起進行c++和資料結構的學習,為期兩周

博主看的是中國大學mooc上北大的c++入門課,蠻推薦的,同樣還有翁愷的c++。

廢話不多說,咱們開始

一、有c到c++

c與c++最大的區別就是面向過程和物件導向,關於物件導向的具體資訊後面會降到

二、與c不同的基礎知識

(一)、引用:

int i;

int & n = i;

i = 1;

std::cout << n; // 會輸出1

注意以下幾點:

1、引用後n變數的型別就是int&

2、引用後兩個變數的位址是相同的(博主親測過)

3、應用變數要在定義時初始化

4、引用可以當做函式的返回值int & function(void);

(二)、const關鍵字

這個和c一樣,有幾個點要注意下:

1、常引用:const int & ***不能使用常引用去修改變數。

2、常指標:const int * *****不能通過常指標去修改所指的變數

(三)、動態記憶體分配

分配乙個變數記憶體

int * p;

p = new int;

delete p;

分配乙個陣列記憶體

int * p;

p = new int[50];

delete p;

動態記憶體分配,在c中有malloc,free運算子。

c++中就是new分配記憶體。

只能給指標分配記憶體,new完返回的是這個記憶體的位址。

注:分配完記憶體後,一定要用delete清空記憶體。

(四)、內聯函式

因為c++很強調效率,因為當有些函式要多次呼叫時,會很耗時間。

在定義函式時,將函式定義為內聯函式可大大降低消耗時間。

inline int function(void)

(五)、函式過載

因為變數名字不好取,為了讓取名變得簡單,所以有函式過載,函式根據變數的型別和個數選擇函式執行

int function(int a,int b)

int function(double a,double b);

int function(int a,int b,int c)

function(1,2);

function(1.1,1.2);

function(1,2,3);

輸出結果

function1

function2

function3

注:使用函式時變數一定要符合引數列表規定

(六)、預設函式

目的:為了提高開發過程的拓展性

void function(int a,int b, int c = 1);

function(1, 2) // 可

function(1,2,3) // 可

function(1, ,3) // 不可,c++預設只能缺最右邊的變數

如何提高拓展性:比如開發乙個程式,這個函式的要新增乙個變數,總不能改變所有引用函式,使用預設函式,不需要這個功能的直接使用原先的預設值,需要的修改定義就好。

C 學習筆記 基礎知識部分(一)

包含兩類檔案,分別是.cpp檔案 實現檔案 和.件 標頭檔案 一 標頭檔案 為了防止同一標頭檔案在乙個專案中被重複包含,有兩種方式 可以同時使用 1 define head h 定義巨集符號 ifdef head h 判斷巨集符號是否已被定義,如果已經定義直接跳到 endif後面 內容 endif ...

C 基礎知識學習筆記(二)

繼承 軟體復用 1.例項化乙個派生類物件時,先呼叫基類的建構函式。若基類的建構函式沒有引數或者沒有顯式定義基類的建構函式,定義派生類建構函式時不必顯式初始化基類成員,甚至無需定義建構函式,編譯器會自動呼叫派生類的預設建構函式,派生類的預設建構函式去呼叫基類的預設建構函式。派生類不能繼承基類的建構函式...

C 學習筆記 二 基礎知識

1.逗號操作符 逗號表示式是一組由逗號分割的表示式,這些表示式從左向右計算。逗號表示式的結果是其最右邊表示式的值。如果最右邊的運算元 是左值,則逗號表示式的值也是左值。此類表示式通常用於for迴圈 int cnt ivec.size for vector size type ix 0 ix ivec...