指標基礎
首先引入乙個**塊
int value = 1024;
int *p;
p = &value;
這樣應該非常直觀了,宣告乙個變數value並將其初始化為1024,宣告乙個int型指標p,將value對應的位址值賦給p。
在這個**塊中,*p = value; p = &value;
直接宣告:
int valueb = 1024;
int *pb = &valueb;
tips: int *pc == int* pc == int * pc; 間接引用:int number = *pc;
使用new分配記憶體
在執行階段給未命名的記憶體分配儲存值
typename pointer_name = new typename;
int pt = new int;
*pt = 1001;
記憶體使用完畢後需要使用delete來釋放記憶體。(必須為建立時記憶體的狀態,即增減後需要恢復為建立時的指標狀態)
delete pt;
一定要配對使用new 與 delete,否則會發生記憶體洩漏(memory leak)。
使用new建立動態陣列
int * ps = new int [20]; //通用格式: typename pointer_name = new typename [num_elements];
程式結束記憶體使用完畢後,同樣需要delete來釋放記憶體防止洩露。
delete ps; // 釋放整個陣列
使用動態陣列
建立動態陣列完畢就是使用它了,很簡單,如下:
double *p3 = new double [3];
double[0] = 0.3;
double[1] = 0.6;
double[2] = 0.9;
在這裡可以直接通過加減操作移動指標的位置。
p3 = p3 + 1;
關於Tcp的一些淺見
從小我們就被教育tcp三次握手,四次揮手云云.其實教科書把我們得思維限制死了,現實的狀況更加有趣.譬如伺服器端也會主動 say hi 客戶端和伺服器端會同時向對方發出syn.博主總結出以下幾條機器對於tcp訊號的反應,對所謂的 客戶端 和 伺服器端 都適用.建立連線的規則 1.收到 syn 必定回覆...
關於深度學習的一些淺見
就是更深層次的學習,它是機器學習的乙個子領域,就我個人理解而言,它就是乙個深度神經網路。就是擁有很多隱藏層的神經網路,通常只要隱藏層超過2個,我們就可以把這個神經網路定義為深度神經網路,當然,隱藏層的啟用函式應該是非線性的,如果是線性的,即使10000層,它的學習能力也僅僅相當於帶有乙個隱藏層的神經...
ceph的一些淺見 關於日誌(1)
日誌是研究 的第一步。ceph的日誌預設輸入到 var log ceph目錄下,可以進入到該目錄下,查詢相應資訊。總共有20個等級的日誌輸出,從1 20。例如我要調整osd.0的日誌輸出等級為15 15,使用下面的命令設定輸出等級 ceph tell osd.0 injectargs debug o...