C 自學筆記

2021-10-08 22:57:35 字數 2592 閱讀 7199

筆記整理自

菜鳥c++教程

物件導向,區分大小寫

寫法:include<>include""

stdio.h/iostream.h/iostream的區別

static:區域性變數,檔案內全域性變數

extern:所有檔案可見變數

thread_local:執行緒內變數

值:i—>j,實參i,形參j,i賦值給j

指標:&i—>int *j,實參i,形參j,j是i的指標

引用:i—>int&j,實參i,形參j,i和j相同

陣列的引數傳遞:實參陣列名—>int 形參陣列名,陣列長度常數—>int i

指標的理解:int* 用來定義指標,定義int * j,定義賦值int* j=&i,賦值j=&i。理解上int和* 在一起,寫法上* 指標名在一起。

引用的理解:&僅表示引用,定義賦值int& j=i。理解和寫法都是int和&在一起。`

c++中的string類

標頭檔案:

標準輸出流cout,流插入運算子 <<

cout << "value of str is : " << str << endl;

標準輸入流cin,流提取運算子 >>

char str[50];cin >> str;

cin的方法

cin.getline(str,50);代替cin>>str;

新增cin.ignore()到cin>>str後會忽略掉之前讀語句留下的多餘字元

標準錯誤流cerr,<<

cerr 物件是非緩衝的,每個流插入到 cerr 都會立即輸出

標準日誌流clog,<<

clog 物件是緩衝的,每個流插入到 clog 都會先儲存在緩衝區,直到緩衝填滿或者緩衝區重新整理時才會輸出

12.1 類的函式

類建構函式

類析構函式

拷貝建構函式

友元函式

this的使用

12.2指向類的指標

使用同結構體

12.3類的靜態成員

static宣告,靜態成員在類的所有物件中是共享的

13.1 繼承

13.2 過載

函式/運算子多個定義,不同定義的引數不同

13.3 多型

標頭檔案

14.1 資料型別/類

14.2 開啟檔案

宣告物件,使用物件中的open方法

第乙個引數為檔名稱和位置,用雙引號

第二個引數為檔案被開啟的模式,多模式用 | 分隔

14.3 關閉檔案

方法close();

14.4 寫入檔案

用ofstream/fstream的物件(其本身是類,物件是該檔案),<<,同cout物件

14.5 讀取檔案

用ifstream/fstream的物件,>>,同cin物件

14.6 檔案位置指標(本身是方法)

檔案位置指標:seekg(長整型,定位模式)

定位模式:不寫預設從頭開始,ios::cur當前位置,end末尾

記憶體分為兩個部分

棧:在函式內部宣告的所有變數都將占用棧記憶體。

堆:這是程式中未使用的記憶體,在程式執行時可用於動態分配記憶體。

16.1 分配記憶體

一般是通過指標為指標指向的變數分配記憶體,此時指標一般初始化為null,即=null。

16.2 動態分配記憶體

所需記憶體大小需要執行時才能確定

16.3 new分配記憶體,delete**記憶體

16.4 陣列的動態記憶體分配

16.5 物件的動態記憶體分配

觸發訊號:ctrl c或raise(sigint訊號函式名);用於生成訊號

標頭檔案:#include

20.1 建立執行緒

先定義執行緒變數,多個變數使用陣列。pthread_t 執行緒名

執行緒建立函式

執行緒退出

20.2 執行緒傳遞引數

形參:void *新變數名,空指標

函式中建立乙個對應變數型別的指標變數,將形參轉換為對應變數型別的指標並賦值給剛建立的指標

此方法同用於所有以結構體作為實參的傳遞

C 自學筆記

本次記錄結構體,還請各位大佬批評指正!結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 整型 浮點型 字元型 布林型 即不同資料型別的集合所組成的乙個型別。建立學生資料型別,然後通過學生資料型別建立具體的學生。通過結構體建立變數的方式有三種 1 struct 結構體名 變數名 2 st...

C 自學筆記

本次記錄程式的記憶體分割槽模型,還請各位大佬批評指正!c 程式在執行時,將記憶體大方向劃分為4個區域 1 區 存放函式體的二進位制 有作業系統進行管理 寫的所有 放在該區域 2 全域性區 存放全域性變數和靜態變數以及常量 3 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數 4 堆區 由程式...

C 自學筆記

本次記錄函式提高,還請各位大佬批評指正!在c 中,函式的形參列表中的形參是可以有預設值的。語法 返回值型別 函式名 引數 預設值 注意事項 1 如果某個位置有預設引數,那麼從這個位置之後,從左往右都必須有預設值。2 如果函式的宣告有預設引數,那麼函式的實現就不能有預設引數。宣告和實現只能有乙個有預設...